Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать создана ли форма?

9.0K
27 апреля 2006 года
only
28 / / 11.11.2005
Перед обращением к форме (A) из другой формы (B), нужно узнать создана ли она [COLOR=blue](A)[/COLOR].
Возможно кому-то также будет полезно то же, но относительно активности [COLOR=blue](A)[/COLOR].

Как это сделать?
1
27 апреля 2006 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by only
Перед обращением к форме (A) из другой формы (B), нужно узнать создана ли она [COLOR=blue](A)[/COLOR].
Возможно кому-то также будет полезно то же, но относительно активности [COLOR=blue](A)[/COLOR].

Как это сделать?


 
Код:
if(Form1 == NULL)return;
...
317
03 мая 2006 года
Relax
573 / / 20.09.2000
не всегда это так просто - если форма по ходу работы приложения удаляется и создается по нескольку раз, то надо еще при удалении формы обнулять указатель. потому что delete его не обнуляет.
246
03 мая 2006 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Relax
не всегда это так просто - если форма по ходу работы приложения удаляется и создается по нескольку раз, то надо еще при удалении формы обнулять указатель. потому что delete его не обнуляет.


Дык про это и говорят:
если delete Form1; Form1 = NULL сделано, то формы нет. Если указатель на создаваемую форму не хранится, то FindWindow(...)

317
03 мая 2006 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by GIZMO
Дык про это и говорят:
если delete Form1; Form1 = NULL сделано, то формы нет. Если указатель на создаваемую форму не хранится, то FindWindow(...)


кто говорит? нигде не указано, что указатель не хранится... и лучше уж тогда мутексы использовать, чем FindWindow - надежнее...

246
03 мая 2006 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Relax
кто говорит? нигде не указано, что указатель не хранится...


Никто не говорит, поэтому рассматриваем оба варианта:
1. Указатель хранится -

 
Код:
if(Form1 == NULL)return;

все и нехер думать.
2. Указатель не хранится используем одно из -
а) FindWindow
б) Screen::Forms
с) Application::Components //если форма была создана TForm1(Application)
1
03 мая 2006 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Relax
кто говорит? нигде не указано, что указатель не хранится... и лучше уж тогда мутексы использовать, чем FindWindow - надежнее...


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

317
04 мая 2006 года
Relax
573 / / 20.09.2000
короче, флуд ни из чего развели... :(

Form1 = NULL; - вот ключевая строка, которой не хватало в первом посте _kot - а...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог