Hallo Zusammen,
Ich möchte in Delphi ein Programm schreiben, das in einer Word-Datei Textmarken beschreibt. Mein Code funktioniert auch erstmal soweit, wie ich das will.
Momentan geht er die geladenen Textmarken durch und setzt bei Checkboxen ein "true", aber gleichzeitig auch einen Text, wodurch das "true" der Checkbox wieder verschwindet. Deswegen möchte ich quasi eine Abfrage für jede Textmarke machen, die überprüft, ob sie zu einer Checkbox gehört oder nicht.
Delphi-Quellcode:
procedure TTextmarkenBeschreiben.Beschreiben(pTextmarkenListe: TStringList);
var lWordInstanz, lWordDocument : OleVariant;
lWordValid : boolean;
lZaehler : Integer;
begin
lWordValid := true;
try
lWordInstanz := GetActiveOleObject('Word.Application');
except
try
lWordInstanz := CreateOleObject('Word.Application');
except
lWordValid := false;
end;
end;
try
if (lWordValid = true) then
begin
lWordInstanz.Visible := True;
lWordDocument := 'PATH';
lWordInstanz := lWordInstanz.Documents.Open(lWordDocument);
for lZaehler := 0 to pTextmarkenListe.Count -1 do
begin
if lWordInstanz.Bookmarks.Exists(pTextmarkenliste[lZaehler])then
begin
lWordInstanz.FormFields.Item(pTextmarkenliste[lZaehler]).Checkbox.Value := true;
lWordInstanz.FormFields.Item(pTextmarkenliste[lZaehler]).Result := 'test';
end
else
begin
showMessage('Die Textmarke: ' + pTextmarkenliste[lZaehler] + ' konnte nicht gefunden werden.');
Exit;
end;
end;
end
else
begin
MessageDlg('Die Anwendung konnte nicht auf die Microsoft Word Schnittstelle zugreifen.' + chr(10) +'Die Vorschau kann nicht erstellt werden.', mtError, [mbOK], 0);
end;
finally
pTextmarkenListe.Clear;
end;