Hallo zusammen,
ich versuche mich gerade an der
OLE Automation von Open / Libre Office.
Konkret will ich die Eigenschaften von einem in OpenOffice aktuell selektieren Textfeld abfragen. Im WWW findet man hier und da ein paar Codeschnipsel, die man zusammensetzen kann.
Ich kann auf selektierten Text zugreifen:
Delphi-Quellcode:
var Selections:Variant;
Sel:Variant;
TextFieldEnum, TextField, Master:Variant;
Selections:=myDoc.getCurrentSelection;
TextFieldEnum := Selections.getByIndex(0).createEnumeration;
if Selections.supportsService('
com.sun.star.text.TextRanges')
then begin
Sel:=Selections.getByIndex(0);
msgbox(Sel.
String);
end;
Und ich kann durch alle Textfelder iterieren und auf deren Eigenschaften zugreifen:
Delphi-Quellcode:
TextFieldEnum := myDoc.getTextFields.createEnumeration;
While TextFieldEnum.hasMoreElements
do begin
TextField := TextFieldEnum.nextElement;
Master := TextField.getTextFieldMaster;
If TextField.supportsService('
com.sun.star.text.textfield.DateTime')
Then
msgbox('
Date/time')
Else If TextField.supportsService('
com.sun.star.text.textfield.Annotation')
Then
msgbox('
Annotation')
Else
msgbox(Master.
Name);
end;
Ich bräuchte aber die Eigenschaften des Selektierten Textfeldes, falls eins selektiert ist. In etwa so:
Delphi-Quellcode:
Selections:=myDoc.getCurrentSelection;
TextFieldEnum := Selections.getByIndex(0).createEnumeration;
if Selections.supportsService('
com.sun.star.text.TextRanges')
then begin
Sel:=Selections.getByIndex(0);
if Sel.isTextField
then // das gibt es nicht
msgbox(Sel.
Name);
end;
Hat jemand sowas schon mal gemacht, oder eine Idee?