Автор | Сообщение |
|
| |
Пост N: 2
Зарегистрирован: 05.06.07
|
|
Отправлено: 04.07.07 00:19. Заголовок: Инициализация полей ввода и событие OnChange
При создании окна последовательно создаются визуальные контролы и заполняются начальными значениями (там где это предусмотрено программером). При этом срабатывает событие OnChange. При этом окно еще недоделано. Последующие виз.контролы еще не созданы. Если OnChange обращается к ним - это облом программы. Приходится встраивать дополнительные навороты в обработчик OnChange, чтобы он не срабатывал при первом вызове и срабатывал в дальнейшем. Или отказываться от OnChange и переносить навороты в другое место. (А при инициализации поля датой событие OnChange срабатывает два раза. давно делал такие исследования. может сейчас что-то изменилось?) Вопрос-предложение. Не лучше было бы на уровне MiniGUI не включать обработчики событий OnChange до полного создания окна? Или уже сейчас есть способы управлять срабатыванием OnChange?
|
|
|
Ответов - 2
[только новые]
|
|
|
| модератор
|
Пост N: 508
Зарегистрирован: 25.05.05
|
|
Отправлено: 04.07.07 08:29. Заголовок: Re:
SADSTAR2 пишет: цитата: | Если OnChange обращается к ним - это облом программы. Приходится встраивать дополнительные навороты в обработчик OnChange, чтобы он не срабатывал при первом вызове и срабатывал в дальнейшем. |
| Да, все верно SADSTAR2 пишет: цитата: | Или отказываться от OnChange и переносить навороты в другое место. |
| Это неудобно SADSTAR2 пишет: цитата: | Не лучше было бы на уровне MiniGUI не включать обработчики событий OnChange до полного создания окна? |
| У меня есть предложение с бразильского форума добавить такую проверку в функцию _DoControlEventProcedure() : *------------------------------------------------------------------------------* Function _DoControlEventProcedure ( bBlock , i , cEventType ) *------------------------------------------------------------------------------* ... if _HMG_BeginWindowActive = FALSE .or. cEventType # 'CONTROL_ONCHANGE' Eval( bBlock ) endif ... Уже сделал, будет доступно в следующем релизе
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 05.06.07
|
|
Отправлено: 20.07.07 02:46. Заголовок: Мое мнение.
Честно говоря - я не врубился в конкретику реализации, т.к. не знаю Ху из Ху. Думаю что включать обработку OnChange на форме надо после завершения обработки события OnInit для формы (завершения процедуры OnInit)
|
|
|
|