Форум » GUI » Инициализация полей ввода и событие OnChange » Ответить

Инициализация полей ввода и событие OnChange

SADSTAR2: При создании окна последовательно создаются визуальные контролы и заполняются начальными значениями (там где это предусмотрено программером). При этом срабатывает событие OnChange. При этом окно еще недоделано. Последующие виз.контролы еще не созданы. Если OnChange обращается к ним - это облом программы. Приходится встраивать дополнительные навороты в обработчик OnChange, чтобы он не срабатывал при первом вызове и срабатывал в дальнейшем. Или отказываться от OnChange и переносить навороты в другое место. (А при инициализации поля датой событие OnChange срабатывает два раза. давно делал такие исследования. может сейчас что-то изменилось?) Вопрос-предложение. Не лучше было бы на уровне MiniGUI не включать обработчики событий OnChange до полного создания окна? Или уже сейчас есть способы управлять срабатыванием OnChange?

Ответов - 2

gfilatov: 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 ... Уже сделал, будет доступно в следующем релизе

SADSTAR2: Честно говоря - я не врубился в конкретику реализации, т.к. не знаю Ху из Ху. Думаю что включать обработку OnChange на форме надо после завершения обработки события OnInit для формы (завершения процедуры OnInit)



полная версия страницы