DELPHI FAQ: Особенности работы события onActivate


Особенности работы события onActivate
Previous  Home  Next


Наверное многие заметили, что событие onActivate формы ведет себя по странному, иногда происходит его активация просто при приобретении формой фокуса, а иногда событие происходит только в случае, когда форма становится видимой?
Виной тому виндовые API. Помните начиная с 98 виндов возникла фича - когда активация окна приводит к мельканию заголовка в таскбаре. Под win95/NT4 событие формы onActivate происходит только в момент показа формы (Show, ShowModal), а в остальных осях может возникать и просто при попадании фокуса на форму (уж не знаю почему, но не всегда). Есть хороший способ избавиться от такого поведения и заставить это событие возникать только 1 раз при активации формы и в дальнейшем только тогда когда это нужно.

Procedure
 TForm1.Form1OnActivate(Sender:TObject);
begin

OnActivate:=nil
{здесь ваш код обработки события} 
end
;

Чтоб подготовить обработку события если она ожидается надо вновь присвоить событию процедуру обработки

OnActivate:=Form1OnActivate;

Автор ответа: Vit
Взято с Vingrad.ru http://forum.vingrad.ru





DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100