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

Вниз

Как узнать создан ли объект   Найти похожие ветки 

 
Foccer ©   (2006-06-10 09:16) [0]

У меня проблема. Не могу узнать создан ли тот или иной объект?


 
tesseract ©   (2006-06-10 09:24) [1]

if MyObject<> nil then .......


 
GanibalLector ©   (2006-06-10 10:33) [2]

if Assigned(обьект)


 
tesseract ©   (2006-06-10 10:37) [3]


> GanibalLector ©   (10.06.06 10:33) [2]

тоже самое, фактически.


 
palva ©   (2006-06-10 10:39) [4]

Если программистом не соблюдается некоторая дисциплина работы с объектом, то никак не узнать.


 
tesseract ©   (2006-06-10 10:54) [5]


> Если программистом не соблюдается некоторая дисциплина работы
> с объектом, то никак не узнать.

То что объект создан - легко, а вот то, что не разрушен - другой вопрос.


 
Reindeer Moss Eater ©   (2006-06-10 11:35) [6]

if Assigned(обьект)
if MyObject<> nil then .......


Этот код не в состоянии ответить на вопрос, создан ли объект.


 
tesseract ©   (2006-06-10 11:36) [7]

Assigned делает то-же самое. Как правило этот метода работоспособен, то-что объект, при условии объёвления его в глобальной переменной,  был создан - определит.


 
Reindeer Moss Eater ©   (2006-06-10 11:40) [8]

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


 
tesseract ©   (2006-06-10 11:52) [9]


> Assigned проверяет ссылку а про сам объект он ничего не
> знает и знать не может.

Если объект объявлен, как глобальная переменная, то при страте программы указатель на него выставляется в nil. в случае локальной переменной этого утверждать нельзя.


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


это подтверждаю, но узнать создан ли объект УЖЕ, этим невозможно, если объект уже создан и вызван новый конструктор, переменной будет присвоена ссылка на  новый объект.


 
Reindeer Moss Eater ©   (2006-06-10 11:55) [10]

Просто автора ветки интересует совсем не тот вопрос, который он задал.


 
tesseract ©   (2006-06-10 11:57) [11]


> У меня проблема. Не могу узнать создан ли тот или иной объект?

Почему, всё явно, он хочет узнать доступен ли объект для операций с ним.


 
Reindeer Moss Eater ©   (2006-06-10 11:58) [12]

Тогда конструктор без эксепшена - ответ на его вопрос.


 
Reindeer Moss Eater ©   (2006-06-10 11:59) [13]

А те ответы неверны, потому что объект может быть создан и без каких либо переменных, ссылающихся на него.


 
tesseract ©   (2006-06-10 12:04) [14]


> А те ответы неверны, потому что объект может быть создан
> и без каких либо переменных, ссылающихся на него.


memory leak - мне кажеться автор хочет этого, как раз избежать. Выяснив, создан уже объект, или его надо создать. Без его пояснений дальнейшее обсуждение бессмысленно.



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

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

Наверх





Память: 0.48 MB
Время: 0.011 c
1-1148290916
Juice
2006-05-22 13:41
2006.07.02
ShowModal в DataModule.OnDestroy


2-1150377106
Scavenger
2006-06-15 17:11
2006.07.02
Задержка времени


8-1130929059
Provodnick
2005-11-02 13:57
2006.07.02
Проблема с тесселяцией многоугольника в OpenGL


8-1138369003
Chaki
2006-01-27 16:36
2006.07.02
DSPack: Скорость просмотра


2-1150047962
Adios
2006-06-11 21:46
2006.07.02
ShellListView





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