Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi OLE_WinWord Textmarken Checkbox oder Textbox (https://www.delphipraxis.net/197797-ole_winword-textmarken-checkbox-oder-textbox.html)

Pader1305 5. Sep 2018 14:47

Delphi-Version: 10.1 Berlin

OLE_WinWord Textmarken Checkbox oder Textbox
 
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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 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