Здравствуйте, <Аноним>, Вы писали:
А>Добрый вечер.
А>вызываю я диалог как form4.ShowModal;
А>в диалоге form4 при появлении обрабатываю событие OnActive .
А>чего-то делаю — закрываю диалог
А>потом мне опять нужно зайти в этот диалог , и при открытии хочется опять обработать OnActive — так как будто первый раз открыли диалог
А>однако там все так как бало перед закрытием диалога. — так как будто его и не закрывали. и OnActive не отрабатывается
А>Как такое осуществить ?
способов несколько:
1. в диалоге form4 в обработчике OnClose напиши Action:=caFree;
2. там где ты вызываешь диалог, после ShowModal делай Free;
3. обрабатывай событие не на OnActivate а например на OnShow.
P.S. В общем суть такова, что событие OnActivate обрабатывается только после OnCreate (если я не ошибаюсь). А твой диалог после закрытия не уничтожается, а лишь прячется (Hide), и при повторном вызове обработка начинается с события OnShow, пропуская OnCreate и OnActivate. (Это если память меня не подводит)
P.P.S. для (1) и (2) форма диалога должна создаваться динамически.
... << RSDN@Home 1.1.3 stable >>