Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   OpenOffice Selektiertes Textfeld (https://www.delphipraxis.net/211678-openoffice-selektiertes-textfeld.html)

bcvs 21. Okt 2022 11:46

OpenOffice Selektiertes Textfeld
 
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?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz