implementation
uses ComObj;
var W:variant;
//Открываем Word
Код:
Function CreateWord:boolean;
begin
CreateWord:=true;
try
W:=CreateOleObject('Word.Application');
except
CreateWord:=false;
end;
End;
//Функция для видимости Word(false-не показывать, ну и true - показать)
Код:
Function VisibleWord(visible:boolean):boolean;
begin
VisibleWord:=true;
try
W.visible:= visible;
except
VisibleWord:=false;
end;
End;
//Функция создания нового документа
Код:
Function AddDoc:boolean;
Var Doc_:variant;
begin
AddDoc:=true;
try
Doc_:=W.Documents;
Doc_.Add;
except
AddDoc:=false;
end;
End;
//Открытие ранее созданного документа.
Код:
Function OpenDoc(file_:string):boolean;
Var Doc_:variant;
begin
OpenDoc:=true;
try
Doc_:=W.Documents;
Doc_.Open(file_);
except
OpenDoc:=false;
end;
End;
//Сохранить документ
Код:
Function SaveDocAs(file_:string):boolean;
begin
SaveDocAs:=true;
try
W.ActiveDocument.SaveAs(file_);
except
SaveDocAs:=false;
end;
End;
//Сохранить документ в Юникоде
Function SaveDocAsUnicod(file_:string):boolean;
const wdFormatUnicodeText=7;
begin
SaveDocAsUnicod:=true;
try
W.ActiveDocument.SaveAs(file_,FileFormat:=wdFormatUnicodeText);
except
SaveDocAsUnicod:=false;
end;
End;
//Закрытие документа
Код:
Function CloseDoc:boolean;
begin
CloseDoc:=true;
try
W.ActiveDocument.Close;
except
CloseDoc:=false;
end;
End;
//Ну и самого Ворда
Код:
Function CloseWord:boolean;
begin
CloseWord:=true;
try
W.Quit;
except
CloseWord:=false;
end;
End;
Использование:
Код:
if CreateWord then begin //Запускаем Ворд
VisibleWord(true); //Показываем его пользователю
If AddDoc then begin //Создаем новый документ
{OpenDoc('C:\123.doc')} //Ну или открываем существующий
//Теперь юзер делает че ему надо....
SaveDocAs('c:\123'); //если надо - сохраняем
CloseDoc; //закрываем документ
CloseWord; //закрываем Ворд
P.S. Проверял на Word2000/2003/XP -Все работает без проблем. Писал прямо на форуме, поэтому могут быть маленькие опечатки!