Mam małą metodę, która próbuje wyliczyć pola w dokumencie programu Word. Minęło dużo czasu, odkąd musiałem robić takie rzeczy, a teraz nie mogę pamiętać, jak to zrobić poprawnie.Dostęp do kolekcji pól w programie Word przy użyciu Delphi
Poniższy kod używa OleVariants, próbowałem przez chwilę i googling nie wymyślił rozwiązania Delphi. Ktoś może sugerować, jak to naprawić?
Ostatecznym celem kodu jest zidentyfikowanie określonego rodzaju pola i użycie tej informacji do usunięcia tego pola.
procedure TForm2.Button1Click(Sender: TObject);
var
I: Integer;
begin
If OpenDialog1.Execute Then
Begin
WordApp := CreateOLEObject('Word.Application');
WordDocument := WordApp.Documents.Open(OpenDialog1.FileName, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam);
for I := 0 to WordDocument.Fields.Count - 1 do
begin
ShowMessage(WordDocument.Fields[ I ].Code);
end;
End;
end;
Przy okazji, wiem, że ten kod pozostawia Słowo otwarte i tak dalej.
To jest w porządku na razie, moim głównym zmartwieniem w tej chwili jest sprawienie, żeby to zadziałało.
Próbowałem również zmienić pętlę do tego:
for I := 0 to WordDocument.Fields.Count -1 do
begin
ShowMessage(WordDocument.Fields.Item(I).Code);
end;
Ale nie działa, powiedział mi, że „Item” nie jest częścią kolekcji.
Skończyły mi się pomysły.
Dziękuję, że działa. –