![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить что OLE automation object закончил свою работу ? [D3, WinXP]
greysers © (2005-03-10 20:58:00)есть такой код :
try
try
MSWord := GetActiveOLEObject('Word.Application');
except
MSWord := CreateOleObject('Word.Application');
end;
except
ShowMessage('Не удается запустить Microsoft Word.');
SysUtils.Abort;
end;
D := MSWord.Documents.Open(GetEnvVariable('TEMP') + '\mstext.html');
D.SaveAs(GetEnvVariable('TEMP') + '\mstext.rft',$00000006);
MSWord.Quit;
sleep(1000);
// какие-то действия с mstext.rft
я делаю sleep(1000), чтобы Word успел сохранить файл mstext.rft, иначе у меня не будет доступа к файлу mstext.rft и будет ошибка.
Но это не совсем правильно.
Можно ли как нибудь определить, что OLE automation object ещё что-то делает (в данном случае сохраняет в файл mstext.rft)?
greysers (2005-03-10 21:21:00) [1]> Vlad ©
спасибо , помогло
Vlad (2005-03-10 21:19:00) [2]MSWord.Quit;
MSWord := Unassigned;
greysers (2005-03-10 21:09:00) [3]Видимо да, у меня выдает ошибку, если сразу после
MSWord.QuitделаюreText.Lines.LoadFromFile(GetEnvVariable('TEMP') + '\mstext.rft');
Polevi (2005-03-10 21:03:00) [4]а что D.SaveAs асинхронный метод ?