Ich bin nun auch ohne diesen für OO anscheinend nicht funktionierenden Viewer ein Stückchen weiter gekommen. Meine 2 Hauptprobleme sind zum einen die für mich recht unverständliche
OO-API und zum anderen das richtige Zuordnen der Felder zu ihren Namen in der OO-
API.
Durch folgenden Quelltext konnte ich zumindest schon winzig kleine Teilerfolge ermitteln:
Delphi-Quellcode:
function TOLE_OpenOffice.EntfPlatzhalter(platzhalter:
String): Boolean;
var
enum, field, InputField: Variant;
begin
enum := Document.getTextFields.createEnumeration;
while enum.hasMoreElements
do begin
field := enum.nextElement;
// if VarType(field) <> varDispatch then ShowMessage('kein Dispatch-Interface vorhanden!');
if field.supportsService('
com.sun.star.text.TextField.Input')
then begin
ShowMessage('
Input');
ShowMessage(field.getPropertyValue('
Hint'));
ShowMessage(field.getPropertyValue('
Content'));
field.setPropertyValue('
Content', '
Test-Content');
Document.TextFields.refresh;
end;
if field.supportsService('
com.sun.star.text.TextField.User')
then begin
ShowMessage('
User');
end;
if field.supportsService('
com.sun.star.text.TextField.InputUser')
then begin
ShowMessage('
InputUser');
end;
end;
end;
So konnte ich zumindest ersteinmal herausfinden, daß die Platzhalter (Feldtyp->Platzhalter, Format->Text). nicht vom Typ Input sind, wie bisher von mir angenommen. Nur von welchem Typ sind sie dann?
Daraufhin habe ich ein Benutzerfeld vom Typ Text angelegt, und siehe da, es handelt sich um ein User-Feld. Daraufhin habe ich mich in der
API zu User durchgeklickt, in der Hoffnung hier die Methoden zur Bearbeitung zu finden, aber Pustekucken, da stehen nur die Eigenschaften drinn. Entweder ist es jetzt schon zu spät, um klare Gedanken zu fassen oder aber die Open Office
API ist die Schlimmste, mit der ich bisher zu tun hatte.
Kann jemand bei einem der beiden Probleme weiter helfen (also Methodensuche oder aber Felder und ihre bezeichnung in der
API) oder sollte ich mich damit lieber an ein OO-Forum wenden?