Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить что 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 асинхронный метод ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо