![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать создан ли объект [D6, D7, WinXP]
Foccer © (2006-06-10 09:16:00)У меня проблема. Не могу узнать создан ли тот или иной объект?
tesseract (2006-06-10 12:04:00) [1]
> А те ответы неверны, потому что объект может быть создан
> и без каких либо переменных, ссылающихся на него.
memory leak - мне кажеться автор хочет этого, как раз избежать. Выяснив, создан уже объект, или его надо создать. Без его пояснений дальнейшее обсуждение бессмысленно.
Reindeer Moss Eater (2006-06-10 11:59:00) [2]А те ответы неверны, потому что объект может быть создан и без каких либо переменных, ссылающихся на него.
Reindeer Moss Eater (2006-06-10 11:58:00) [3]Тогда конструктор без эксепшена - ответ на его вопрос.
tesseract (2006-06-10 11:57:00) [4]
> У меня проблема. Не могу узнать создан ли тот или иной объект?
Почему, всё явно, он хочет узнать доступен ли объект для операций с ним.
Reindeer Moss Eater (2006-06-10 11:55:00) [5]Просто автора ветки интересует совсем не тот вопрос, который он задал.
tesseract (2006-06-10 11:52:00) [6]
> Assigned проверяет ссылку а про сам объект он ничего не
> знает и знать не может.
Если объект объявлен, как глобальная переменная, то при страте программы указатель на него выставляется в nil. в случае локальной переменной этого утверждать нельзя.
> Вот если конструктор класса завершился без исключения, то
> можно с большой долей уверенности сказать, что объект который
> он пытался создать - создан.
это подтверждаю, но узнать создан ли объект УЖЕ, этим невозможно, если объект уже создан и вызван новый конструктор, переменной будет присвоена ссылка на новый объект.
Reindeer Moss Eater (2006-06-10 11:40:00) [7]Assigned проверяет ссылку а про сам объект он ничего не знает и знать не может.
Вот если конструктор класса завершился без исключения, то можно с большой долей уверенности сказать, что объект который он пытался создать - создан.
tesseract (2006-06-10 11:36:00) [8]Assigned делает то-же самое. Как правило этот метода работоспособен, то-что объект, при условии объёвления его в глобальной переменной, был создан - определит.
Reindeer Moss Eater (2006-06-10 11:35:00) [9]if Assigned(обьект)
if MyObject<> nil then .......
Этот код не в состоянии ответить на вопрос, создан ли объект.
tesseract (2006-06-10 10:54:00) [10]
> Если программистом не соблюдается некоторая дисциплина работы
> с объектом, то никак не узнать.
То что объект создан - легко, а вот то, что не разрушен - другой вопрос.
palva (2006-06-10 10:39:00) [11]Если программистом не соблюдается некоторая дисциплина работы с объектом, то никак не узнать.
tesseract (2006-06-10 10:37:00) [12]
> GanibalLector © (10.06.06 10:33) [2]
тоже самое, фактически.
GanibalLector (2006-06-10 10:33:00) [13]
if Assigned(обьект)
tesseract (2006-06-10 09:24:00) [14]if MyObject<> nil then .......