Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2009, 13:02   #1
puga555
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 12
По умолчанию Как проверить существет ли еще форма в frm:TMyTypeForm?

Есть переменная frm:TMyTypeForm;
Как узнать, что форма на которую ссылается эта переменная,еще существует?
assigned(frm)говорит существет, а на самом деле она уже закрыта...
и потом когда обращаешься к ней, напрмиер, frm.MyFunction, естественно ругается.
puga555 вне форума Ответить с цитированием
Старый 18.12.2009, 13:07   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Через try..except попытайтесь определить хэндл этой формы.
mihali4 вне форума Ответить с цитированием
Старый 18.12.2009, 13:09   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

закрыта или уничтожена?

на крайняк try except end есть.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.12.2009, 13:15   #4
puga555
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 12
По умолчанию

Форма уничтожается в другом месте методом destroy не через переменную frm. форма сама когда закрывается уничтожается, а ссылка на нее остается в переменной frm, и нужно проверять прежде чем с ней работать, что существет ли форма или нет.


Кроме try except есть какие еще варианты? может какая процедура наподобии assigned, тольео которая проверяет существует ли объект по этой ссылке?

Последний раз редактировалось puga555; 18.12.2009 в 13:22.
puga555 вне форума Ответить с цитированием
Старый 18.12.2009, 13:19   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кроме как через try except этого всеравно не узнать.(есть ли чтото по ссылке)
вам лучше использовать не destroy
а FreeAndNil(Frm);
и потом assigned(Frm) вернет что надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как Как проверить кнопки мыши без OnMouseDown? Вадим Буренков Общие вопросы Delphi 3 22.05.2009 15:08
Как Проверить диаппазон komar73 Microsoft Office Excel 3 06.02.2009 12:28
Как проверить строку? nikleb PHP 6 07.07.2008 22:04
Как проверить существование потока? John_chek Общие вопросы Delphi 3 17.01.2008 15:16