Hallo Zusammen,
ich nutze LibreOffice, hoffe ich darf hier aber trotzdem meine Frage stellen?!?
Mittels STRG-F3 öffne ich das AUTOTEXT Fenster, in dem ich viele Textbausteine verwalte. Mittels dem Knopf Einfügen füge ich dann einen ausgewählten Text-Baustein ein. Leider schließt sich das Autotext-Fenster dadurch aber sofort wieder, so dass ich wieder STRG-F3 drücken muss, den nächsten Baustein wählen usw.
Wer kann mir helfen, dass sich das Autotext-Fenster nicht sofort schließt.
Ich hatte schon die IDee, ein kleines Marko zu schreiben, welches STRG-F3 simuliert, und dies meinen Textbausteinen zuzuweisen. Da gibt es ja eine entsprechende Funktion. Bin aber zu doof mittels MACRO das Autotext Fenster zu öffnen
DANKE für Eure Hilfe oder Hinweise, falls ich hier falsch bin
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗
Autotext-Fenster soll nach Einfügen nicht zugehen
-
- Beiträge: 14
- Registriert: Do 16. Dez 2021, 12:53
Re: Autotext-Fenster soll nach Einfügen nicht zugehen
Hallo,
Dieser ist von den Machern (AOO und LibreOffice) modal programmiert worden. Damit ist zwar das Arbeiten mit dem Dialog möglich, aber er kann nicht über dem Dokument „schweben“.
Dieses wäre nur mit einem nicht modalen Dialog möglich.
Es ist auch in den Einstellungen nirgends möglich das Verhalten zu ändern.
Aus diesem Grunde gibt es nur zwei Möglichkeiten:
Sonst wäre Variante 1) die richtige Wahl.
Dazu folgender, anfänglicher Code:
Der Code sammelt alle Einträge und Kürzel aus der Gruppe „Standard“ und listet diese am Ende des Makro in einer Messagebox auf.
Weil mir nicht bekannt ist, ob Dir die Unterschiede eines Dialogfensters bekannt sind , hier eine kleine Info:hat geschrieben:Wer kann mir helfen, dass sich das Autotext-Fenster nicht sofort schließt.
- Modale Dialoge sperren den Rest der Anwendung (oder sogar der Benutzeroberfläche), solange der Dialog angezeigt wird.
- Nicht modale Dialoge erlauben auch Eingaben in der Applikation außerhalb des Dialogs.
Dieser ist von den Machern (AOO und LibreOffice) modal programmiert worden. Damit ist zwar das Arbeiten mit dem Dialog möglich, aber er kann nicht über dem Dokument „schweben“.
Dieses wäre nur mit einem nicht modalen Dialog möglich.
Es ist auch in den Einstellungen nirgends möglich das Verhalten zu ändern.
Aus diesem Grunde gibt es nur zwei Möglichkeiten:
- Man belässt alles so wie es ist, zumal man den Autotext-Dialog mittels [STRG][F3] direkt aufrufen kann.
Oder man nutzt das Symbol „Autotext“ aus der Symbolleiste „Einfügen“ - Hierbei wäre eine sehr aufwendige Programmierung von Nöten.
Man zeichnet sich in der Basic-IDE einen benutzerdefinierten, nicht modalen Dialog. In einer Listbox auf dem Dialog ließen sich dann während des Arbeitens die verschiedenen Autotext-Einträge auswählen und einfügen, wobei der Dialog immer über dem Dokument „schwebt“ bis das Makro beendet wird, bzw. der Dialog geschlossen wird. - Abhängig von der Anzahl Deiner Autotext-Einträge, könnte man die Variante 2) umgehen.
Hierfür musst dass Autotext-Fenster nicht öffnen, Du musst nur wissen in welcher Gruppe die Texte gespeichert sind und wie das Kürzel zum jeweiligen Text lautet.hat geschrieben:Ich hatte schon die IDee, ein kleines Marko zu schreiben, welches STRG-F3 simuliert, und dies meinen Textbausteinen zuzuweisen.
Siehe Beispiel-Code:Wenn Du nun mehrere Dispatch-Commands dieser Art schreibst und passt die Value-Argumente entsprechend an, dann könntest Du Dir z.B. eine Symbolleiste anlegen, welche all Deine Autotexte an der Cursorposition per Klick einfügt.Code: Alles auswählen
Sub AT_Dispatch rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") dim args9(1) as new com.sun.star.beans.PropertyValue args9(0).Name = "Group" args9(0).Value = "standard*0" ' Gruppe "Standard" args9(1).Name = "ShortName" args9(1).Value = "BS" ' Das Kürzel → "Bestellung" ' Einfügen des Autotextes an Cursorposition dispatcher.executeDispatch(document, ".uno:InsertGlossary", "", 0, args9()) End Sub
Sonst wäre Variante 1) die richtige Wahl.
Dazu folgender, anfänglicher Code:
Code: Alles auswählen
Sub myAutoText
REM Array's deklarieren
Dim mShort ' Array für die Kürzel
Dim mTitle ' Array für die Titel
REM INFO:
REM https://help.libreoffice.org/7.2/de/text/sbasic/shared/01020100.html?DbPAR=BASIC#bm_id3149346
Dim sName$, sGroup$, sText$ 'Stringvariablen
' sName = "Bestellung"
' Gruppenname
sGroup = "standard*0"
' Zugriff auf den AutoTextContainer bereitstellen
oSVAutoTextContainer = CreateUnoService("com.sun.star.text.AutoTextContainer")
' Objektvariable für die angegebene Gruppe
oObj1 = oSVAutoTextContainer.getByName( sGroup )
' xray oObj1
' alle Titel der Gruppe "standard*0" in Array schreiben
mTitle=oObj1.Titles
' alle Kürzel der Gruppe in Array schreiben
mShort=oObj1.ElementNames
' Anzahl der Arrayfelder ermitteln
x=uBound(mTitle)
' Schleife über alle Arrayfelder, um die einzelnen
' Kürzel und Title in die Stringvariable zu schreiben
for i = 0 to uBound(mTitle)
' chr(9) = Tabulator (TAB)
' chr(10) = Line Feed (LF)/ Zeilenumbruch
' chr(13) = Carriage Return (CR)/ Wagenrücklauf
sText=sText & mShort(i) & " → " & chr(9) & chr(9) & mTitle(i) & chr(10)
next i
' Ausgabe aller Kürzel und Titel
msgbox sText
End Sub
Gruß
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
-
- Beiträge: 14
- Registriert: Do 16. Dez 2021, 12:53
Re: Autotext-Fenster soll nach Einfügen nicht zugehen
Lieber Craig,
1000 DANK für Deine so ausführliche und tolle Antwort. Bin schwer begeistert.
Ich habe deine Antwort gut verstehen können und die unterschiedlichen Möglichkeiten. Da es schätzungsweise über 20 Textbausteine sind, muss ich überlegen, wie man das am geschicktesten macht, bzw. welcher Ansatz von Dir für mich am besten erscheint.
Ich werde berichten.
Und sorry, dass ich erst jetzt antworte. Lag ein paar Tage flach und komme leider erst jetzt wieder dazu, dass Thema zu durchdenken.
VLG Chris
1000 DANK für Deine so ausführliche und tolle Antwort. Bin schwer begeistert.
Ich habe deine Antwort gut verstehen können und die unterschiedlichen Möglichkeiten. Da es schätzungsweise über 20 Textbausteine sind, muss ich überlegen, wie man das am geschicktesten macht, bzw. welcher Ansatz von Dir für mich am besten erscheint.
Ich werde berichten.
Und sorry, dass ich erst jetzt antworte. Lag ein paar Tage flach und komme leider erst jetzt wieder dazu, dass Thema zu durchdenken.
VLG Chris
-
- Beiträge: 14
- Registriert: Do 16. Dez 2021, 12:53
Re: Autotext-Fenster soll nach Einfügen nicht zugehen
Ich bin nun kurz in mich gegangen .
Da es doch einige Einträge sind und ich die Textbausteine doch am liebsten "komplett" überblicken mag, werde ich einen ganz anderen Weg gehen.
Ich werde ein(!) "Vorlagen" -Dokument erstellen und von dem mit der Zwischenablage die Textteile "rüberschiessen" .
Entweder ich mache das gleich in CALC von Openoffice, oder in einer anderen ODT-Datei. Mal sehen.
Ich sehe hierbei die Vorteile, dass ich die Vorlage besser pflegen kann und an 2 Bildschirmen auch eine gute Übersicht über die vielen Bausteine habe...
DANKE nochmals CRAIG!!! VLG
Da es doch einige Einträge sind und ich die Textbausteine doch am liebsten "komplett" überblicken mag, werde ich einen ganz anderen Weg gehen.
Ich werde ein(!) "Vorlagen" -Dokument erstellen und von dem mit der Zwischenablage die Textteile "rüberschiessen" .
Entweder ich mache das gleich in CALC von Openoffice, oder in einer anderen ODT-Datei. Mal sehen.
Ich sehe hierbei die Vorteile, dass ich die Vorlage besser pflegen kann und an 2 Bildschirmen auch eine gute Übersicht über die vielen Bausteine habe...
DANKE nochmals CRAIG!!! VLG