Показать сообщение отдельно
  #2  
Старый 05.09.2007, 12:20
~ SaM ~ ~ SaM ~ вне форума
Начинающий
 
Регистрация: 05.01.2007
Адрес: Днепропетровск
Сообщения: 141
Репутация: 25
По умолчанию

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 -Все работает без проблем. Писал прямо на форуме, поэтому могут быть маленькие опечатки!
Ответить с цитированием