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

Ваш аккаунт

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

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

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

Событие формы

335
11 мая 2005 года
enola
379 / / 25.01.2005
Добрый день!
Есть диалог идентификации пользователя т.е. форма с вводом пароля, в каком событии формы необходимо вызывать диалог, чтобы с начала показалась форма, а уже потом отображался диалог?
585
11 мая 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by enola
Добрый день!
Есть диалог идентификации пользователя т.е. форма с вводом пароля, в каком событии формы необходимо вызывать диалог, чтобы с начала показалась форма, а уже потом отображался диалог?



Попробуй onActivate

246
11 мая 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by honeybeer
Попробуй onActivate


И будет спрашивать пароль при каждой активации формы. Вообщем-то прикольно.

4.2K
11 мая 2005 года
Крыс
98 / / 06.05.2005
А чем OnShow() не подходит?

Кстати Можно добавить лок.переменную типа Bool, приравнять true при открытии, а после первого события OnActivate() сделать равным false, а на событие OnActivate() повесить проверку
335
11 мая 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Крыс
А чем OnShow() не подходит?

Кстати Можно добавить лок.переменную типа Bool, приравнять true при открытии, а после первого события OnActivate() сделать равным false, а на событие OnActivate() повесить проверку


1. OnShow происходит до отображения формы см. выше.
2. Вариант с переменной типа bool не подходит. Такой вариант я сам могу придумать! Я спрашивал про событие формы!

10
11 мая 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by enola
OnShow происходит до отображения формы см. выше.


OnShow происходит после отображения формы, но до ее фактической прорисовки.

335
11 мая 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by Freeman
OnShow происходит после отображения формы, но до ее фактической прорисовки.


Да именно так, прошу прощение за не точность, я имел в виду диалог появляется раньше формы.

259
11 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by enola
Да именно так, прошу прощение за не точность, я имел в виду диалог появляется раньше формы.


OnCreate

335
11 мая 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by AlexandrVSmirno
OnCreate


Народ наверное решил угадать :)!
OnCreate происходит при создании формы, соответственно если туда поместить вывод диалога, то он отобразится на экране до появления самой формы!
События наступают в такой последовательности:
OnCreate, OnShow, OnActivate, так вот эти три не подходят, но первые два вовсе, а последнее наступает периодически, что тоже не удобно.

585
11 мая 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by enola
Народ наверное решил угадать :)!
OnCreate происходит при создании формы, соответственно если туда поместить вывод диалога, то он отобразится на экране до появления самой формы!
События наступают в такой последовательности:
OnCreate, OnShow, OnActivate, так вот эти три не подходят, но первые два вовсе, а последнее наступает периодически, что тоже не удобно.


Зря смеетесь:
В разделе

 
Код:
...
private:
bool _firstactivate;
...

В конструкторе
 
Код:
...
_firstactivate = true;
...

и далее
 
Код:
void __fastcall TfmModel::FormActivate(TObject *Sender)
{
if(_firstactivate)MessageBox(this->Handle, "Message","Message", MB_OK|MB_ICONERROR);
_firstactivate = false;
}
259
11 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by enola
Да именно так, прошу прощение за не точность, я имел в виду диалог появляется раньше формы.


Вы определитесь пожалуйста до или после

335
11 мая 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by AlexandrVSmirno
Вы определитесь пожалуйста до или после


после, я по-моему четко описал в начале!
после сообщения Freeman я писал уточнение для события OnShow и сказал, что диалог в таком случае будет отображаться до появления формы а мне нужно ПОСЛЕ.
насчет переменных "типа bool" не подходит!
Разве по-другому никак сделать нельзя?

4.2K
11 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by enola
1. OnShow происходит до отображения формы см. выше.
2. Вариант с переменной типа bool не подходит. Такой вариант я сам могу придумать! Я спрашивал про событие формы!



Во первых, отображение диалога не обязательно вешать на событие формы. Посмотри по сути программы, какое событие элементов фромы активируется после ее вывода только один раз..
Как вариант - можно создать такой элемент специально

А bool тебе чем не угодил? %)

259
11 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by enola
после, я по-моему четко описал в начале!
после сообщения Freeman я писал уточнение для события OnShow и сказал, что диалог в таком случае будет отображаться до появления формы а мне нужно ПОСЛЕ.
насчет переменных "типа bool" не подходит!
Разве по-другому никак сделать нельзя?


А как еще. Вам описали три наиболее подходящих события.

585
11 мая 2005 года
honeybeer
297 / / 06.09.2004
На вас не угодишь :D то я не хочу, это мне не подходит.
Можно написать свой Event.
4.2K
11 мая 2005 года
Крыс
98 / / 06.05.2005
Цитата:
Originally posted by honeybeer
На вас не угодишь :D то я не хочу, это мне не подходит.
Можно написать свой Event.


:D см. чуть выше

335
11 мая 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by honeybeer
На вас не угодишь :D то я не хочу, это мне не подходит.
Можно написать свой Event.


Ну почему! Спасибо большое всем за обсуждение темы, просто как всегда хочется как лучше. :D

585
11 мая 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by enola
Ну почему! Спасибо большое всем за обсуждение темы, просто как всегда хочется как лучше. :D


Если вам кроме Sender'a в обработчик передавать ничего не надо - TNotifyEvent лучшее решение для создания Event'a

6.4K
11 мая 2005 года
MerlinWind
52 / / 01.05.2005
а можно еще, на одно из так неподходящих событий, таймер повесить, и - по таймеру...))
10
11 мая 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by enola
Ну почему! Спасибо большое всем за обсуждение темы, просто как всегда хочется как лучше. :D


Измените алгоритм передачи изображения по сети, вот и будет вам лучше.

259
11 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Freeman
Измените алгоритм передачи изображения по сети, вот и будет вам лучше.



Цитата:
Originally posted by MerlinWind
а можно еще, на одно из так неподходящих событий, таймер повесить, и - по таймеру...))


Господа, а вы пост - то хотя бы читали?

335
11 мая 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by AlexandrVSmirno
Господа, а вы пост - то хотя бы читали?


Замечания в точку! :)
Народ я спрашивал не решить за меня проблему, а указать на событие формы удовлетворяющее требованиям, если такое событие имеется! :) Все остальные методы решения проблемы (за что спасибо) я знал и ранее, хотя в профиле и написано новичок! :D

10
11 мая 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by enola
Замечания в точку! :)


На заре профессиональной деятельности я тоже маялся подобной фигней, но потом как-то все само стало получаться правильно и без дополнительных событий...

Вот и подумалось, какой должна быть задача, чтобы вопрос появления того или иного диалога и прорисовки главной формы был так сильно связан. Только и пришло в голову, что передача данных с экрана по сети, бишь разработка аналога Remote Administrator.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог