Как проверить "созданность объекта"?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Создаю экземпляр класса
form1:=TForm1.Create(MainForm);

как проверить не был ли он закрыт?
как развернуть минимизиованную дочернюю форму?

(работаю с MDI по нажатию на конопку нужно проверить создана или нет данная форма и если созданна то её надо развернуть)
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

GOS, чем тебя не устраивает сравнение с nil?
Даже самый дурацкий замысел можно воплотить мастерски
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Получается вот что...
if FORM<>nil then
при первом создании работает, а вто если звкрыть окно(Action:=caFree) .Close , то при повторной проверке получаем <>nil.
Или я что-то не понимаю....
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

(Action:=caFree) .Close
Вот эту строку не понял.
Даже самый дурацкий замысел можно воплотить мастерски
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

извини за краткость :) ))
В обработчике OnClose прописано Action:=caFree;

Ну собственно говоря .Close закрытие этого окошка...

Но с этим немного разобрался... надо написать :=caNone
и вызвать ShowWindow(..., SW_HIDE)...
Оказалось что это заморочки с Z-индексом окон...
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Я поступаю так (два случая)
1 Либо данная форма в риложении никогда не разрушается а только прячется
2 либо форма разрушается всегда и создается всегда, причем при разрещении ссылка принудительно устанавливается в nil

В частносли можно и так: в TForm2.OnClose
Form2:=nil;
Action:=caFree;

Т.е. обеспечьте при разрушении объекта однозначное уничтожение ссылки.
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Спасибо, понял!
Ответить