Einzelnen Beitrag anzeigen

Benutzerbild von Nightjacket
Nightjacket

Registriert seit: 28. Feb 2013
7 Beiträge
 
Delphi 7 Professional
 
#8

AW: Serienbrieffelder auslesen

  Alt 1. Mär 2013, 08:49
Ja das stimmt, löst aber leider mein Problem nicht, dass ich Fields bzw. DataFields keinen Namen oder Index übergeben darf ohne einen Fehler zu erhalten.
Trotzdem dank' ich dir erstmal!

Ich hab es zwischenzeitlich noch auf andere Weise, nach diesem Beispiel hier, versucht und stoße auch dabei wieder auf Probleme:
Code:
procedure testMerge2();
var
  wordApp: TWordApplication;
  dir: OleVariant;
begin
  wordApp := TWordApplication.Create(nil);
  wordApp.Connect;
  dir := edtUser.Text;
  wordApp.Documents.OpenOld(dir,EmptyParam,EmptyParam,EmptyParam,
  EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

  // ShowMessage(wordApp.ActiveDocument.Fields.Count); <-- Count nicht bekannt
end;
Eingebunden habe ich dafür OleServer und WordXP (um TWordApplication bekannt zu machen). Nun hatte ich gehofft, dass er damit vielleicht keine Probleme bekommt, aber angeblich gibt es für Fields kein Count! Er kennt lediglich ..ActiveDocument.Field.Application..
Wie im verlinkten Beispiel beschrieben sollte es aber genau so funktionieren:
Code:
cnt := wordApp.ActiveDocument.Fields.Count;
Ich verzweifel langsam daran und hab keine Ahnung wieso er die eigentlich vorhandene Funktion nicht kennt.

Danke an alle die bis hierher so geduldig mitgelesen haben und versuchen zu helfen.

EDIT - Problem gelöst!
Diesmal vergaß ich einfach IntToStr() um den Ausdruck in der ShowMessage... nunja ich verbuche das unter Anfängerfehler!
Vielleicht gab es bei der ersten Testfunktion ein ähnliches Problem, das werde ich jetzt überprüfen, aber zumindest klappt es mit der zweiten nun, den Namen der Felder auszugeben über
Code:
wordApp.ActiveDocument.Fields.Item(i).Result.Text
Also vielen Dank nochmal an euch!

Geändert von Nightjacket ( 1. Mär 2013 um 09:07 Uhr)
  Mit Zitat antworten Zitat