Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Steuern von Textfeldern in Word (https://www.delphipraxis.net/130158-steuern-von-textfeldern-word.html)

myownshadow 4. Mär 2009 09:39


Steuern von Textfeldern in Word
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo !
Ich verzweifele gerade an der Aufgabe, ein Word2000 Steuerelemnt abzufragen.

In Word habe ich ein Formular gebastelt, welches zwei Textboxen besitzt.
Diese möchte ich nun von meiner Delphi Anwendung aus abfragen, bzw. einen neuen Text einsetzen.

Delphi-Quellcode:
    ...
    MyWordApp.Connect;
    MyWordApp.Visible := True;
    MyWordApp.Caption := 'Auflastberechnung nach DIN 1055';

    AFile := 'C:\Vorlage_Ausfüllen.doc';
    MyWordDoc.ConnectTo(MyWordApp.Documents.Open(AFile, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
                        EmptyParam ,EmptyParam ,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam));

    ...
    Memo1.Lines.Clear;
    Memo1.Lines.Add('DokumentName: ' + MyWordDoc.Name);
    for I := 1 to MyWordDoc.Fields.Count do
    Begin
      Iole := I;
      MyWordDoc.Fields.Item(Iole).Select;
      Memo1.Lines.Add(IntToStr(I) + ': ' + MyWordDoc.Fields.Item(Iole).Result.Text);
    End;
In meinem Memofeld für Testausgaben werden zwar zwei Elemte angezeigt, aber nicht der jeweilige Inhalt aus dem Worddokument.
Was mache ich da falsch ?

Florian Hämmerle 5. Mär 2009 12:12

Re: Steuern von Textfeldern in Word
 
Hübscher Crosspost...

Keldorn 5. Mär 2009 20:32

Re: Steuern von Textfeldern in Word
 
Hallo

also richtig erklären kann ich nicht, aber die Textfelder, die du eingefügt hast, sind ja Steuerelemente und nix Word-Eigenes wie z.B. ein Textformularfeld. Mit den Dingern habe ich noch nix gemacht.
Da kommst du scheinbar nicht auf diesem Weg an den Text ran, siehst du auch, wenn Du dir ein Makro aufzeichnest: geht a) nicht richtig und b) auch beim neu erzeugten Textbox-feld läßt sich per Makro nicht der Text ändern.

per google habe ich folgendes gefunden:
http://www.office-loesung.de/ftopic279905_0_0_asc.php

wenn du das in Delphi umsetzt, kommt sowas raus:
Delphi-Quellcode:
    var mytextbox:olevariant;
    ...
    for I := 1 to WordDocument1.InlineShapes.Count do
    Begin
      Iole := I;
      ishp:=WordDocument1.InlineShapes.item(iole);
      if ishp.type_= wdInlineShapeOLEControlObject then
       if iShp.OLEFormat.ClassType = 'Forms.TextBox.1' Then
         begin
           mytextbox:=iShp.OLEFormat.Object_;
           Memo1.Lines.Add(IntToStr(I) + ' Name: '+mytextbox.name+', Text:'+mytextbox.text);
         end;
    end;
dann steht im Memo:
Zitat:

1 Name: TextBoxAnlagenStandort, Text:Dies ist der erste Text
2 Name: TextBoxAnlagenStandort2, Text:Dies ist ein anderer Text
:-)

Gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz