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

Вниз

TComObject   Найти похожие ветки 

 
----   (2002-11-19 14:43) [0]

Сделал СОМ-обьект...унаследовал его от интерфейса IMy(созданного мной)...зарегистрировал его (обьект)...Коннекчусь к нему

var
I: IMy;
I1: IMy;

procedure Test;
begin
I :=CreateComObject(Class_IMy_) as IMy;
I.Smth;
I1:=CreateComObject(Class_IMy_) as IMy;
I1.Smth;
end;

Мне нужно, чтобы создалось 2 экземпляра IMy...но создается только один....а когда закрываю прогу, то выдается куча всяких ошибок...Притом, когда не использую I1 (в процедуре Test комментирую последние 2 строки), то все нормально. Почему?


 
han_malign   (2002-11-19 14:57) [1]

CreateComObject is called once to create each new single instance of a class. To create multiple instance of the same class it is recommended to use a class factory.



 
----   (2002-11-19 15:54) [2]

Хелп я и сам читал......

1. Проблем нет
procedure Test;
begin
I :=CreateComObject(Class_IMy_) as IMy;
I.DoSmth;
end;

2. Проблемы есть
procedure Test;
begin
I :=CreateComObject(Class_IMy_) as IMy;
I.DoSmth;
I1 :=CreateComObject(Class_IMy_) as IMy;
I1.DoSmth;
end;

Почему когда я "create new single instance of a class" во второй раз, при закрытии приложения вылетает ошибка Access violation...?


 
----   (2002-11-19 16:20) [3]

ВСЕ!! ВОПРОС СНЯТ!! Это был мой глюк в написании СОМ-обьекта. Я обращался к глобальной переменной. И когда первый экземпляр уничтожался, то он убивал эту переменную. А второй при уничтожении ссылался на нее - вот и ошибка...


 
han_malign   (2002-11-19 16:21) [4]

I:=nil;I1:=nil;{Release}- делаешь?



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

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

Наверх





Память: 0.45 MB
Время: 0.007 c
14-93200
madcap
2002-11-10 02:44
2002.11.28
квадратичная и линейная интерполяции


3-92932
TDan
2002-11-12 02:29
2002.11.28
DBEdit


1-93039
Ильдар
2002-11-16 00:30
2002.11.28
В help для TCanvas описан метод SetClipRect, но при компиляции


3-92872
bigbill
2002-11-08 07:13
2002.11.28
Из XML в базу данных


1-92973
DVM
2002-11-15 21:45
2002.11.28
Как узнать что открылось новое окно?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский