Difference between revisions of "WordAutomation/de"

From Lazarus wiki
(Word: Sichtbarkeit steuern)
Line 16: Line 16:
 
<br>
 
<br>
 
<br>
 
<br>
=Speicherplatz reservieren=
+
=Speicherplatz für Word und Worddokument reservieren=
 
<syntaxhighlight>
 
<syntaxhighlight>
 
var
 
var
Line 23: Line 23:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Word OleObjekt erstellen=
+
=Wordsteuerung=
 +
==Word OleObjekt erstellen==
 
<syntaxhighlight>
 
<syntaxhighlight>
 
begin
 
begin
Line 36: Line 37:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Word Version ermitteln=
+
==Word Version ermitteln==
 
<syntaxhighlight>
 
<syntaxhighlight>
 
begin
 
begin
Line 45: Line 46:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Word beenden und Speicher freigeben=
+
==Word beenden und Speicher freigeben==
 
<syntaxhighlight>
 
<syntaxhighlight>
 
begin
 
begin
Line 51: Line 52:
 
   varWdApp.Quit;
 
   varWdApp.Quit;
 
   varWdApp := Unassigned;
 
   varWdApp := Unassigned;
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
=Word: Sichtbarkeit steuern=
 +
Eine unsichtbare Anwendung verhindert  während der Automatisierung das Flackern des Bildschirms.<br>
 +
<syntaxhighlight>
 +
begin
 +
  ...
 +
  varWdApp.Visible := False;  // macht Word unsichtbar
 +
  varWdApp.Visible := True;  // macht Word sichtbar
 
   ...
 
   ...
 
end;
 
end;
Line 131: Line 143:
 
   ...
 
   ...
 
   varDokument := Unassigned; // Gibt den Speicher für die Programmsteuerung frei
 
   varDokument := Unassigned; // Gibt den Speicher für die Programmsteuerung frei
  ...
 
end;
 
</syntaxhighlight>
 
<br>
 
 
=Word: Sichtbarkeit steuern=
 
Eine unsichtbare Anwendung verhindert  während der Automatisierung das Flackern des Bildschirms.<br>
 
<syntaxhighlight>
 
begin
 
  ...
 
  varWdApp.Visible := False;  // macht Word unsichtbar
 
  varWdApp.Visible := True;  // macht Word sichtbar
 
 
   ...
 
   ...
 
end;
 
end;

Revision as of 19:10, 25 September 2012

Windows logo - 2012.svg

Dieser Artikel behandelt ausschließlich Windows.

Siehe auch: Multiplatform Programming Guide/de

Deutsch (de)


Word als OleObjekt

Word lässt sich wie alle MS Office Produkte automatisieren. Im Gegensatz zu den übrigen MS Office Produkten ist es bei der Automatisierung sehr sehr langsam und reagiert sehr ungewohnt.
Wenn man als Automatisierungsobjekt nicht zwingend auf MS Word angewiesen ist, dann sollte man für die Automatisierung MS Excel nehmen.
Für die Oleautomation muss die Unit ComObj eingebunden werden.
Wenn Sie mit Umöauten arbeiten dann brauchen Sie für das Stringcasting die Unit lclproc.

Beispiel:

unit
  ComObj, lclproc;



Speicherplatz für Word und Worddokument reservieren

var
  varWdApp: oleVariant;      // Reserviert Speicher für die Programmsteuerung
  varDokument: oleVariant;   // Reserviert Speicher für die Steuerung des Worddokuments


Wordsteuerung

Word OleObjekt erstellen

begin
  ...
  try
    varWdApp := CreateOleObject('Word.Application'); // erstellt das Wordobjekt
  except
    WriteLn('MS Word kann nicht gestartet werden.'); // Fehlerbehandlung
  end;
  ...
end;


Word Version ermitteln

begin
  ...
  ShowMessage(varWdApp.Version);
  ...
end;


Word beenden und Speicher freigeben

begin
  ...
  varWdApp.Quit;
  varWdApp := Unassigned;
  ...
end;


Word: Sichtbarkeit steuern

Eine unsichtbare Anwendung verhindert während der Automatisierung das Flackern des Bildschirms.

begin
  ...
  varWdApp.Visible := False;  // macht Word unsichtbar
  varWdApp.Visible := True;   // macht Word sichtbar
  ...
end;


Dokument bearbeiten

Worddokument erstellen

begin
  ...
  varDokument := varWdApp.Documents.Add; // fügt ein neues 'leeres' Worddokument hinzu
  ...
end;


Worddokument öffnen

Es gibt mehrere Möglichkeiten ein Worddokument zu öffnen.

begin
  ...
  varDokument := varWdApp.Documents.Open(strPfad);        // öffnet ein Worddokument mit Hilfe einer Variablen
                                                          // (Pfad: maximal 255 Zeichen, Alphanumerisch)
  varDokument := varWdApp.Documents.Open('D:\Test.doc');  // öffnet ein Worddokument mit festem Pfad hinzu
  ...
end;


Worddokument aktiviern

begin
  ...
  varDokument.Activate;  //aktiviert das Worddokument
  ...
end;


Worddokument Text einfügen

begin
  ...
  varWdApp.Selection.TypeText(Text := 'Neuer Text. ');
  varWdApp.Selection.TypeText(Text := UTF8ToUTF16('Zusätzlicher Text')); // Benötigt die Unit lclproc für die korrekte
                                                                         // Umwandlung der Umlaute

  varWdApp.Selection.InsertAfter(String(#13));  // fügt einen Zeilenumbruch im Worddokument ein
  varWdApp.Selection.InsertAfter(String(#10));  // fügt einen Zeilenumbruch im Worddokument ein

  varWdApp.Selection.InsertAfter('Test');       // fügt im Worddokument nach der Cursorposition diesen Text ein
                                                // die Cursorpsition befindet sich bei einem frisch geöffneten Worddokument
                                                // immer am Anfang des Dokuments

  ...
end;


Worddokument speichern

begin
  ...
  varDokument.SaveAs('D:\Test.doc'); // Speichert das Worddokument unter einem neuen Namen
  varDokument.Save;                  // Speichert das Worddokument unter seinem aktuellen Namen
  ...
end;


Worddokument schliessen

begin
  ...
  varDokument.Close;                 // Schliesst das Worddokument
  ...
end;


Worddokument Speicher freigeben

begin
  ...
  varDokument := Unassigned; // Gibt den Speicher für die Programmsteuerung frei
  ...
end;



--Olaf 16:52, 25 September 2012 (UTC)