von Toxitom » Mi, 09.05.2012 07:27
Hey zusammen,
ja, nichts ist perfekt. Die Writer-Tools liegen derzeit "auf Eis" - aber eine Anpassung ist geplant
Sind noch ein paar andere "Kleinigkeiten" drin.
Tatsächlich funktioniert das Entfernen der harrten Formatierung derzeit nicht, wenn vor der Markierung (Cursorplazierung) sich eine (Text-) Tabelle befindet. Aktuell kann ich nur einen kleinen Fehlerpatch liefern:
Code: Alles auswählen
Sub WT_DELHarteFormatierungen
dim oViewC as variant 'Viewcursor
dim oAbsaetze as variant
dim oAbs as variant
dim oTC1 as variant, oTC2 as variant, oTC3 as variant, oTC4 as variant
oDoc = thisComponent
REM Selektion auslesen
on Error goto Fehler 'falls kein ViewCursor existiert!
oViewC = oDoc.currentController.getViewCursor
if oViewC.isCollapsed() then 'nichts markiert
n = msgbox("Sie haben nichts markiert - soll das komplette" & chr(13) & _
"Dokument (Basistext) korrigiert werden?",4+32+256, "Keine Textmarkierung")
if NOT (n=6) then exit sub
oAbsaetze = oDoc.text.createEnumeration
Do while oAbsaetze.hasMoreElements
WT_AbsatzZuruecksetzen(oAbsaetze.nextElement, oDoc)
loop
else
otc1 = oViewC.getText.createTextCursorbyRange(oViewC.getStart()) 'Anfang
otc2 = oViewC.getText.createTextCursorbyRange(oViewC.getEnd()) 'Ende
oTC1.gotostartofParagraph(false) 'Start
oTC2.gotoendofParagraph(false) 'Ende
oAbsaetze = oViewC.gettext().createEnumeration
Do while oAbsaetze.hasMoreElements
oAbs = oAbsaetze.nextElement
if oAbs.supportsService("com.sun.star.text.TextTable") then
'Absatz ist eine Tabelle - hier muss noch eine Routine ergänzt werden
else
oTC3 = oAbs.text.createTextCursorByRange(oAbs.getStart())
oTC3.gotoRange(oTC1, true)
if oTC3.isCollapsed then flag = true 'Anfang gefunden
if flag then 'jetzt abarbeiten
WT_AbsatzZuruecksetzen(oAbs, oDoc)
'xray oAbs
oTC4 = oAbs.text.createTextCursorByRange(oAbs.getEnd())
oTC4.gotoRange(oTC2, true)
if oTC4.isCollapsed then exit do
end if
end if
loop
end if
exit sub
fehler:
msgbox ("Bitte markieren Sie einen Text oder Textteil!", 16, "keine Markierung")
End sub
Ersetzt den bisherigen Code durch den oben geposteten.
Zur Erläuterung: Auch eine Texttabelle ist intern ein "Absatz", dieser unterstützt aber nicht das "Text"-Objekt. Im alten Code kam es daher zu einem Fehler, dieser wurde "abgefangen" und die eher nichtssagende Schlussmeldung ausgegeben
Werde die Korrektur bei einer späteren Anpassung der Writer-Tools mit berücksichtigen.
Viele Grüße
Thomas
Hey zusammen,
ja, nichts ist perfekt. Die Writer-Tools liegen derzeit "auf Eis" - aber eine Anpassung ist geplant ;-)
Sind noch ein paar andere "Kleinigkeiten" drin.
Tatsächlich funktioniert das Entfernen der harrten Formatierung derzeit nicht, wenn vor der Markierung (Cursorplazierung) sich eine (Text-) Tabelle befindet. Aktuell kann ich nur einen kleinen Fehlerpatch liefern:
[code]
Sub WT_DELHarteFormatierungen
dim oViewC as variant 'Viewcursor
dim oAbsaetze as variant
dim oAbs as variant
dim oTC1 as variant, oTC2 as variant, oTC3 as variant, oTC4 as variant
oDoc = thisComponent
REM Selektion auslesen
on Error goto Fehler 'falls kein ViewCursor existiert!
oViewC = oDoc.currentController.getViewCursor
if oViewC.isCollapsed() then 'nichts markiert
n = msgbox("Sie haben nichts markiert - soll das komplette" & chr(13) & _
"Dokument (Basistext) korrigiert werden?",4+32+256, "Keine Textmarkierung")
if NOT (n=6) then exit sub
oAbsaetze = oDoc.text.createEnumeration
Do while oAbsaetze.hasMoreElements
WT_AbsatzZuruecksetzen(oAbsaetze.nextElement, oDoc)
loop
else
otc1 = oViewC.getText.createTextCursorbyRange(oViewC.getStart()) 'Anfang
otc2 = oViewC.getText.createTextCursorbyRange(oViewC.getEnd()) 'Ende
oTC1.gotostartofParagraph(false) 'Start
oTC2.gotoendofParagraph(false) 'Ende
oAbsaetze = oViewC.gettext().createEnumeration
Do while oAbsaetze.hasMoreElements
oAbs = oAbsaetze.nextElement
if oAbs.supportsService("com.sun.star.text.TextTable") then
'Absatz ist eine Tabelle - hier muss noch eine Routine ergänzt werden
else
oTC3 = oAbs.text.createTextCursorByRange(oAbs.getStart())
oTC3.gotoRange(oTC1, true)
if oTC3.isCollapsed then flag = true 'Anfang gefunden
if flag then 'jetzt abarbeiten
WT_AbsatzZuruecksetzen(oAbs, oDoc)
'xray oAbs
oTC4 = oAbs.text.createTextCursorByRange(oAbs.getEnd())
oTC4.gotoRange(oTC2, true)
if oTC4.isCollapsed then exit do
end if
end if
loop
end if
exit sub
fehler:
msgbox ("Bitte markieren Sie einen Text oder Textteil!", 16, "keine Markierung")
End sub
[/code]
Ersetzt den bisherigen Code durch den oben geposteten.
Zur Erläuterung: Auch eine Texttabelle ist intern ein "Absatz", dieser unterstützt aber nicht das "Text"-Objekt. Im alten Code kam es daher zu einem Fehler, dieser wurde "abgefangen" und die eher nichtssagende Schlussmeldung ausgegeben ;-)
Werde die Korrektur bei einer späteren Anpassung der Writer-Tools mit berücksichtigen.
Viele Grüße
Thomas