Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];

Вниз

Как узнать жив еще OLE - объект или его уже кто-то прибил?   Найти похожие ветки 

 
AFROLOV   (2002-04-29 14:20) [0]

Доброго всем дня.
Как узнать жив еще OLE - объект или его уже кто-то прибил?
Пример такой:
Создается
MSWord:Variant;
..
MSWord := CreateOleObject("Word.Application");
...

Возникает необходимость узнать: объект созданный CreateOleObject еще существует или пользователь его уже закрыл?


 
AFROLOV   (2002-04-30 10:21) [1]

Неужели никто не знает?


 
Дмитрий Орехов   (2002-04-30 11:06) [2]

if VarIsEmpty(MSWord) then
по-моему так


 
AFROLOV   (2002-04-30 11:17) [3]

пробовал я так. Это работает если объект еще не создавался. А если он был создан и уничтожен то это не проходит :-(.


 
Teacher   (2002-04-30 12:17) [4]

А обратиться к какому-нибудь его свойству или методу, который гарантировано должен работать если объект жив и поймать исключение? Вроде я так делал когда-то...


 
AFROLOV   (2002-04-30 13:29) [5]

Так я тоже пробовал. Если объект убили то почему-то Exception в try
..
except
..
end;

не ловится.


 
Dok_3D   (2002-04-30 13:42) [6]

2AFROLOV © (30.04.02 13:29)

А что, если объет убили, то какое-то действие между try except нормально выполняется ?
Кто же его выполнил, если объект убили ?


 
AFROLOV   (2002-04-30 13:50) [7]

Вы меня не совсем так поняли.
Пример:
try
tmp:=MSWord.Selection.Start;//Если объект еще жив то это работает без ошибки если нет то должен появится OleError.
Он появляется. Правда вместо того чтобы передать управление на секцию except появляется message об ошибке.
except
...
end;






 
Olivka   (2002-04-30 23:08) [8]

приведу кусочек из файла wordauto.pas, входящего в состав дельфи как пример.
В этой процедуре создается объект word-a и заходно проверяется - не грохнул ли его кто-нибудь . А вообще запустите пример word8auto.dpr и вам станет ясно.

procedure TForm1.NewDocButtonClick(Sender: TObject);
begin
try
WordObject.NewDoc("");
except
ShowMessage("It seems like somebody killed Word and didn""t tell me about it...");
if Assigned(WordObject) then begin
LaunchButton.Enabled := True;
CloseButton.Enabled := False;
NewDocButton.Enabled := False;
TypeTextButton.Enabled := False;
WordObject.Free;
WordObject := nil;
end;
end;
end;


 
AFROLOV   (2002-05-06 11:15) [9]


WordObject : TWordObject;
Это для TWordObject. А для OLE?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-64743
VS2001
2002-04-30 05:56
2002.05.20
Как узнать что программа (модуль из DLL) уже запущена


14-64818
DOk
2002-04-07 15:23
2002.05.20
Маленький проектик :) приглашаю всех поучаствовать-поиграть :)


1-64583
galina
2002-05-07 15:22
2002.05.20
программирование


14-64780
MC TOL
2002-04-09 13:04
2002.05.20
Совпадений не бывает!... Или...???


1-64738
antoniz
2002-05-07 11:16
2002.05.20
Как сделать в Combobox выпадающий список переменной длины





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский