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

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

Как узнать создан ли объект [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 .......


Наверх

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