|
发表于 2020-5-1 13:45:01
|
显示全部楼层
1、onactivate是激活事件,是当窗口获得焦点(即标题栏变成蓝色)变成当前状态的情况下触发的事件这个事件主要执行的是DoNestedActivation
procedure DoNestedActivation(Msg: Cardinal; Control: TWinControl; Form: TCustomForm);
begin
if Control = nil then Exit;
{ Find the closest parent which is a form }
while (Control.Parent <> nil) and not (Control is TCustomForm) do
Control := Control.Parent;
if Assigned(Control) and (Control <> Form) then
SendMessage(Control.Handle, Msg, 0, 0)
end;
相反,就是ondeactivate事件,这是丢失焦点,从当前状态转入非激活状态
在执行这些事件的时候,OnCreate事件早已执行,onCreate事件是初始化事件,也叫创建事件。是构造函数
2、onclose事件是在窗体被关闭之前所要执行的事件。hide窗体不会执行这个事件。
FormCloseQuery事件比较的有意思,它也是关闭窗口之前要执行的事件,它在onclose事件之前执行,这个事件中有个参数Canclose可以用来限制你关闭窗口。CanClose:=False;表示不可以关闭,相反CanClose:=true允许关闭
与oncreate构造函数事件对应的是ondestroy销毁函数事件,只是在窗口结束时,释放所有窗口资源之前所执行的事件 |
|