Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Word OLE- Kontrollkästchen ! (https://www.delphipraxis.net/11880-word-ole-kontrollkaestchen.html)

lowell 15. Nov 2003 20:59


Word OLE- Kontrollkästchen !
 
Guten Abend,

aus der beliebten und bekannten Reihe "ich habe da mal wieder ein Problem" heute folgendes...:-)

Es betrifft Word OLE: Ich möchte in einem Worddokument Kontrollkästchen ansprechen. Unter http://www.lowell.de/check.gif ist das ganze zu sehen. Das Kontrollkästchen ist in Word unter "Formulare" zu holen.

Ich hatte schon im Forum geschaut- auch unter den anderen bekannten Seiten habe ich diesbezüglich nichts gefunden- nur wie man druckt und Textmarken anspricht, etc.

Ich bedanke mich für eure Mühe im vorraus.
Schönes Wochenende,

Grüße Alex

ustra 15. Nov 2003 22:27

Re: Word OLE- Kontrollkästchen !
 
Hallo,

wie die Befehle lauten, kann ich Dir nicht sagen. Ich kann Dir nur den Tipp geben, auf herber.de im Forum zu suchen bzw. dort die Frage stellen. Die können Dir helfen. Jetzt wirst Du Dich sicher fragen, warum plötzlich Visual Basic. Die Antwort ist einfach. Du kannst mit OLE die Visual Basic-Befehle von Word aufrufen. Sprich, Du mußt rausfinden, wie Die Befehle lauten. Du kannst natürlich auch in der Visual Basic Hilfe von Word nachschauen. Einfach Word Öffnen und dann den Visual Basic Editor öffnen und dann die Hilfe auswählen (Bei Word XP: Extras -> Makro).

Beste Grüße
Ulrich

lowell 15. Nov 2003 22:49

Re: Word OLE- Kontrollkästchen !
 
Hallo Ulrich,

danke erstmal für die schnelle Antwort. Ich hatte gleich mal die Hilfedatei geöffnet...naja, nicht wirklich habe ich etwas gefunden.

Danke trotzdem- vielleicht kennt ja jemand anderes die Lösung? :-)

Alex

toms 16. Nov 2003 07:10

Re: Word OLE- Kontrollkästchen !
 
Hi!

Habe mal was für dich zusammengeschustert.
Ist kommentiert. Bei Fragen nachfragen.


Delphi-Quellcode:
uses
  ComObj;

procedure TForm1.Button1Click(Sender: TObject);
const
  wdFieldFormTextInput = $00000046;
  wdFieldFormCheckBox = $00000047;
var
  Word, Formfield: OLEVariant;
var
  iAnzFormFelder, i: Integer;
begin
  // Word instanz erzeugen
  try
    Word := CreateOleObject('Word.Application');
  except
   // Fehler...
  end;

  // Word anzeigen
  Word.Visible := True;

  // Neues Dokument einfügen
  Word.Documents.Add;

  // Checkbox (Kontrollkästchen1) hinzufügen
  Formfield := Word.Selection.FormFields.Add(Word.Selection.Range, wdFieldFormCheckBox);
  // Einen Namen vergeben
  Formfield.Name := 'Kontrollkästchen1';
  // Checkbox anchecken
  Formfield.Checkbox.Value := True;

  // Checkbox (Kontrollkästchen2) hinzufügen
  Formfield := Word.Selection.FormFields.Add(Word.Selection.Range, wdFieldFormCheckBox);
  // Einen Namen vergeben
  Formfield.Name := 'Kontrollkästchen2';

  // Die Anzahl der Formfelder ermitteln
  iAnzFormFelder := Word.ActiveDocument.Formfields.Count;
 // ShowMessage(IntToStr(iAnzFormFelder));

  // in einer Schleife alle Formfelder durchlaufen.
  for i := 1 to iAnzFormFelder do
  begin
    Formfield := Word.ActiveDocument.Formfields.Item(i);
    // überprüfen, ob es sich um ein Kontrollkästchen handelt.
    if Formfield.Type = wdFieldFormCheckBox then
    begin
       // FormFeldname anzeigen
       ShowMessage(Formfield.Name);
       // Dann etwas damit machen...
       Formfield.Checkbox.Value := not Formfield.Checkbox.Value;
    end;

  end;

  Word := Unassigned;
  Formfield := Unassigned;
end;

lowell 16. Nov 2003 21:27

Re: Word OLE- Kontrollkästchen !
 
Hallo Toms,

hat geklappt...habe mir die richtigen Zeilen rausgeholt:

Delphi-Quellcode:
Word.ActiveDocument.FormFields.Item('Kontrollkästchen1').Checkbox.value := true;
Vielen Danke für Eure Tipps! :thuimb:

Grüße und einen schönen Sonntagabend,
Alex - der sich richtig freut, weils endlich weitergehen kann :bouncing4:

semo 27. Feb 2005 17:12

Re: Word OLE- Kontrollkästchen !
 
hat mir auch weitergeholfen dieser tip,
da es ja echt nen krampf ist mit der vb hilfe zu hantieren und die syntax/ nutzung der befehle von vb nicht konform sind mit den zu nutzenden OLE Methoden.
:thumb:


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