Oft Sonderzeichen einfügen vereinfachen?

Das Textverarbeitungsprogramm

Moderator: Moderatoren

calli
**
Beiträge: 22
Registriert: Do, 31.08.2006 14:53

Oft Sonderzeichen einfügen vereinfachen?

Beitrag von calli »

Hallo,

ich benutze einen Keycaps-font um Tastendrücke zu beschreiben. Nun ist das einfach bei "A", "B" etc. aber bei Sondertasten Strg, Alt etc.ist es mühselig das Menü "Sonderzeichen Einfügen", dann scrollen bis zum Zeichen, einfügen, Dialog schließen, dann auf Zeichenvorlage "Taste" formatieren...

Wie würdet Ihr das lösen, ich dachte mir:

- Auto Text oder Autokorrektur (bei Strg wird das Strg-Zeichen draus etc.) Geht das?

- Symbol-Leiste die ein Makro aufruft welches das Zeichen einfügt. Kann man dem Makro ein Parameter übergeben? Sonst muss ich einige Subs definieren

- Dritte Methode?

Gruß,
Carsten
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Oft Sonderzeichen einfügen vereinfachen?

Beitrag von lorbass »

calli hat geschrieben:- Dritte Methode?
Vielleicht findest du in diesem Thread was Passendes.

Gruß
lorbass
calli
**
Beiträge: 22
Registriert: Do, 31.08.2006 14:53

Re: Oft Sonderzeichen einfügen vereinfachen?

Beitrag von calli »

Danke für den Link, ich glaube ich muss auch ein Makro schreiben...

Weder Autotext noch Autokorrektur scheinen EIN Zeichen aus meinem Sonderzeichenvorrat einfügen zu können (Autotext kann scheinbar keine einzelnen Zeichen) und gleichzeitig auch den Zeichenstil (selbstdefiniert) setzen zu können. Das ist auch der Pferdefuß externer Programme, sie können ja nicht wissen welchen Font und Stil ich in OOWriter haben möchte

Wenn noch ein Makroguru mitliest nochmal mein Makrofrage: Kann man bei Aufruf eines Makros Parameter übergeben? Ich meine nicht, aber wenn ich was nicht finde in der Doku heisst das nicht das es nicht doch geht ;-)

Vielleicht ist es aber auch besser \strg zu tippen + STRG-M (Beispiel) und dann macht das Makro aus den Zeichen links vom Cursor mein Sonderzeichen (Keycap Strg) und setzt noch den Zeichenstil "Taste".

Gruß,
Carsten
calli
**
Beiträge: 22
Registriert: Do, 31.08.2006 14:53

Re: Oft Sonderzeichen einfügen vereinfachen?

Beitrag von calli »

Hier mal mein Ergebnis:

Code: Alles auswählen

rem ----------------------------------------------------------------------
sub Einfuegen_Taste
' es muss ein Zeichenstil "Taste" existieren
' verwendeter Keycapfont: http://linuxlibertine.org/index.php?id=86

dim document   as object
dim dispatcher as object
dim command, insert as String
Dim selCount,mySelection as object
Dim keys As Variant
Dim symbols as string

rem Tastennamen
keys = Array("strg","alt","altgr","ctrl","shift","tab","return","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","home","del","ins","end","pos1","entf","einf","leer","esc","ende","lmb","mmb","rmb","mb","backspace")
rem Tastensymbole
symbols =""

rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem -------------- Wort Links vom Cursor ---------------------------------
dispatcher.executeDispatch(document, ".uno:WordLeftSel", "", 0, Array())
mySelection = ThisComponent.getCurrentSelection()
command = UCase(mySelection.getByIndex(0).getString())

rem --------------- Auf Style Taste schalten ------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Template"
args2(0).Value = "Taste"
args2(1).Name = "Family"
args2(1).Value = 1
dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args2())

rem ---------------------- Tastennamen gegen Symbole tauschen --------------
for i=0 to UBound(keys)-1
	cpos = Instr(command,keys(i))
	if cpos <> 0 then
		lpart = Left(command,cpos-1)+Mid(symbols,i+1,1)
		rpart = Right(command,len(command)-cpos-len(keys(i))+1)
		command = lpart+rpart
	endif
next

rem ------------- string einfügen -----------------------------------------
dim args4(3) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Text"
args4(0).Value = command ' result+UCase(command)
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args4())

rem ------------- auf Standard-Style umschalten ---------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Template"
args5(0).Value = "Standard"
args5(1).Name = "Family"
args5(1).Value = 1
dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args5())

rem -------------- Leerzeichen  -----------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Text"
args6(0).Value = " "
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args6())

end sub
Vielleicht kann es ja jemand gebrauchen der auch viele Tastendrücke im Dokument auszeichnen muss. Man schreibt jetzt z.B. strgalta und ruft das Makro auf (bei mir strg-T) und das Makro macht dann mit den Keycap Font (siehe Anmerkungen im Makro) die Magie und ersetzt strg durch das einzelne Zeichen aus dem Keycapfont.

Gruß,
Carsten
Antworten