Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Word OLE- Kontrollkästchen !

  Alt 16. Nov 2003, 07:10
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;
Thomas
  Mit Zitat antworten Zitat