Ab Delphi 4 reicht es nicht mehr aus nur ComObj.pas einzubinden um die
COM-Umgebung zu initialisieren.
Ab Delphi 4 muss man Application.Initialize aufrufen. Das erledigt das ganze dann. Da du ja eine Konsolenanwendung hast willst du sicher nicht unnötig die Forms.pas einbinden. Also musst du einen Ersatz für Application.Initialize bauen:
Lösung aus: aus
COM/
DCOM/
COM+ von Andreas Kosch ISBN:3935042019 Seite 188
Dein Programm nun angepasst:
Delphi-Quellcode:
Program CrossWord;
Uses
ComObj,
SysUtils;
{$R *.res}
procedure SetWordSettings (sVersion:
string);
Var
WordApp:OLEVariant;
begin
try
WordApp := CreateOLEObject('
Word.Application')
except on E:
Exception do
begin
E.
Message := '
Word is not available';
raise
end;
end;
try
WordApp.Visible := True
WordApp.Documents.Add;
finally
WordApp.Quit
end;
end;
begin
if InitProc <>
nil then TProcedure(InitProc);
SetWordSettings('
10');
end.