Difference between revisions of "WordAutomation/de"

From Lazarus wiki
Jump to navigationJump to search
Line 7: Line 7:
 
Wenn man als Automatisierungsobjekt nicht zwingend auf MS Word angewiesen ist, dann sollte man für die Automatisierung MS Excel nehmen.<br>
 
Wenn man als Automatisierungsobjekt nicht zwingend auf MS Word angewiesen ist, dann sollte man für die Automatisierung MS Excel nehmen.<br>
 
Für die Oleautomation muss die Unit '''ComObj''' eingebunden werden.<br>
 
Für die Oleautomation muss die Unit '''ComObj''' eingebunden werden.<br>
 +
Wenn Sie mit Umöauten arbeiten dann brauchen Sie für das Stringcasting die Unit '''lclproc'''.<br>
 +
<br>
 +
Beispiel:<br>
 +
<syntaxhighlight>
 +
unit
 +
  ComObj, lclproc;
 +
</syntaxhighlight>
 +
<br>
 
<br>
 
<br>
 
 
=Speicherplatz reservieren=
 
=Speicherplatz reservieren=
 
<syntaxhighlight>
 
<syntaxhighlight>
 
var
 
var
   varWdApp: OleVariant;
+
   varWdApp: oleVariant;     // Reserviert Speicher für die Programmsteuerung
 +
  varDokument: oleVariant;  // Reserviert Speicher für die Steuerung des Worddokuments
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
Line 28: Line 36:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Word beenden und Speicher freigeben=
+
=Word Version ermitteln=
 +
<syntaxhighlight>
 +
begin
 +
  ...
 +
  ShowMessage(varWdApp.Version);
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
=Word Dokument erstellen=
 +
<syntaxhighlight>
 +
begin
 +
  ...
 +
  varDokument := varWdApp.Documents.Add; // fügt ein neues 'leeres' Worddokument hinzu
 +
  ...
 +
end;
 +
</syntaxhighlight>
 +
<br>
 +
=Word Dokument öffnen=
 +
Es gibt mehrere Möglichkeiten ein Worddokument zu öffnen.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
begin
 
begin
 
   ...
 
   ...
   varWdApp.Quit;
+
   varDokument := varWdApp.Documents.Open(strPfad);       // öffnet ein Worddokument mit Hilfe einer Variablen (Pfad: maximal 255 Zeichen, Alphanumerisch)
   varWdApp := Unassigned;
+
   varDokument := varWdApp.Documents.Open('D:\Test.doc'); // fügt ein Worddokument mit festem Pfad hinzu
 
   ...
 
   ...
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
=Word Version ermitteln=
+
=Word beenden und Speicher freigeben=
 
<syntaxhighlight>
 
<syntaxhighlight>
 
begin
 
begin
 
   ...
 
   ...
   ShowMessage(varWdApp.Version);
+
   varWdApp.Quit;
 +
  varWdApp := Unassigned;
 
   ...
 
   ...
 
end;
 
end;
Line 68: Line 96:
 
<br>
 
<br>
 
<br>
 
<br>
--[[User:Olaf|Olaf]] 17:29, 21 September 2012 (UTC)
+
--[[User:Olaf|Olaf]] 16:52, 25 September 2012 (UTC)
 
 
 
[[Category:Tutorials/de]]
 
[[Category:Tutorials/de]]

Revision as of 18:52, 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 reservieren

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


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 Dokument erstellen

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


Word Dokument ö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');  // fügt ein Worddokument mit festem Pfad hinzu
  ...
end;


Word beenden und Speicher freigeben

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


Word: Datei öffnen

begin
  ...
  varWdApp.Documents.Open(strPfad); // öffnet die Worddatei (Pfad: maximal 255 Zeichen, Alphanumerisch)
  ...
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;



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