Dienstag, 26. Januar 2010

OpenOffice writer: Schriftgröße relativ ändern mit CTRL+8 / CTRL+9

Ich habe mir um die Funktion zum relativen Vergrößern / Verkleinern von ausgewähltem Text mit unterschiedlicher Größe & Schriftart in Openoffice Basic geschrieben.

Die Implementierung hat seine Fehler: nicht gerade schnell, hohe CPU-Belastung, bei zu starker Verkleinerung (Schriftgröße 2 oder 4 glaube ich) klappt das Vergrößern nicht mehr richtig ... aber ansonsten funktioniert das Ganze wie von Word her bekannt. Die Funktionen habe ich dann noch Strg+8 + Strg+9 - wie in Word - zugeordnet, um diese schnell verwenden zu können.


REM ***** BASIC *****


Sub DecreaseSelected
Dim objDoc As Object
Dim objSelections As Object
Dim objSel As Object
Dim objCursor As Object
Dim iCount As Integer
Dim oTextElementEnum As Object
Dim oTextElement As Object

objDoc = ThisComponent
objSelections = objDoc.getCurrentSelection()
For iCount = 0 To objSelections.Count-1
objSel = objSelections(iCount)
objCursor = objDoc.Text.createTextCursorByRange(objSel)
If Not objCursor.IsCollapsed() Then 'is not emtpy

oTextElementEnum = objCursor.createEnumeration()
While oTextElementEnum.hasMoreElements()
oTextElement = oTextElementEnum.nextElement
'verkleinern um 1 pt.
oTextElement.CharHeight = oTextElement.CharHeight-1
Wend
End If
Next
End Sub

Sub IncreaseSelected
Dim objDoc As Object
Dim objSelections As Object
Dim objSel As Object
Dim objCursor As Object
Dim iCount As Integer
Dim oTextElementEnum As Object
Dim oTextElement As Object

objDoc = ThisComponent
objSelections = objDoc.getCurrentSelection()
For iCount = 0 To objSelections.Count-1
objSel = objSelections(iCount)
objCursor = objDoc.Text.createTextCursorByRange(objSel)
If Not objCursor.IsCollapsed() Then 'is not emtpy

oTextElementEnum = objCursor.createEnumeration()
While oTextElementEnum.hasMoreElements()
oTextElement = oTextElementEnum.nextElement
'verkleinern um 1 pt.
oTextElement.CharHeight = oTextElement.CharHeight+1
Wend
End If
Next
End Sub

Keine Kommentare :

Kommentar veröffentlichen