type E_Actionmain=class(tdcreateform) uses tslvcl; btn1:tbtn; actionlist1:tactionlist; action1:taction; btn2:tbtn; btn3:tbtn; btn4:tbtn; btn5:tbtn; popupmenu1:tpopupmenu; menu1:tmenu; btn6:tbtn; function Create(AOwner);override; //构造 begin inherited; end function action1_onexecute(o;e); begin {** @explan(说明) onexecute消息回调 % @param(e)(tuievent) 消息对象 % @param(o)(tcomponent) 组件 % **} echo "\r\naction do "; end function btn5_clk(o;e);virtual; //修改caption begin action1.caption := datetimetostr(now()); end function btn6_clk(o;e);virtual; //修改enabled状态 begin action1.Enabled := not action1.Enabled; end function e_actionmain1_close(o;e);virtual; begin {** @explan(说明) 主窗口关闭回调 %% @param(e)(tuievent) 消息对象 %% @param(o)(ttimer) 当前主窗口 %% **} if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true; end function DoControlAlign();override;//对齐子控件 begin //当窗口大小改变时,该函数会被调用, //可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小 //如果自己处理了子控件的对齐,就可以去掉 inherited inherited; end function Recycling();override; //回收变量 begin inherited; ci := self.classinfo(); //将成员变量赋值为nil避免循环引用 for i,v in ci["members"] do begin invoke(self,v["name"],nil); end end end