我写了2个程序都是关闭窗口,可是搞不懂它们的区别到底在哪儿?哪种情况下必须要用到消息呢?请通谷点讲!感谢大家!使用消息:procedure Tform1.myclose(var guanb:TWMCLOSE);
begin
showmessage('关闭窗口,才显示这个提示框');
end;使用事件:procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
showmessage('使用事件关闭窗口.');
end;

解决方案 »

  1.   

    事件FormClose 其实还是相应消息WM_CLOSE来产生的,见TCustomForm类, 不过事件参数Action: TCloseAction 可以有很多选择,可以关闭、隐藏、最小化、
    caNone, caHide, caFree, caMinimize
      

  2.   

    The WM_CLOSE message is sent as a signal that a window or an application should terminate.
    当窗口或应用程序关闭时发送一个“WM_CLOSE"消息信号 Occurs when the form closes
    这个是VCL的窗口关闭事件OnClose,当一个窗体发生关闭时发生。在VCL内部实际上也是应用了“WM_CLOSE”消息。
      

  3.   

    两者本质上没有区别,只是一个是按照原始的纯消息流程进行的,一个VCL架构对其进行了封装,但本质上依旧是一样的
      

  4.   

    第一個用的是消息;
    第二個用的是基於VCL的封裝