• Delphi事件列表赏析(38个事件,必须要对这些事件非常熟悉,才能如臂使指,才能正确发布到新控件!)


    我把Delphi常用的几个类的事件都收集齐了,并一一加以注释。原因是在自定义的过程中,看到那堆长长的事件列表感到头晕,但是如果不发布这些事件的话,更是暴殄天物。所以关键还是要对这些事件非常熟悉,才能不头晕,才能如臂使指!

      TControl = class(TComponent)    // 控件的Windows功能从TControl开始
      private
        // ------------ 事件声明(18个事件,大多数是鼠标事件)------------ 
        FOnResize: TNotifyEvent;
        FOnCanResize: TCanResizeEvent;
        FOnConstrainedResize: TConstrainedResizeEvent;
        // 停泊与拖动
        FOnStartDock: TStartDockEvent;
        FOnEndDock: TEndDragEvent;
        FOnStartDrag: TStartDragEvent;
        FOnEndDrag: TEndDragEvent;
        FOnDragDrop: TDragDropEvent;
        FOnDragOver: TDragOverEvent;
        FOnContextPopup: TContextPopupEvent;
        // 鼠标事件
        FOnClick: TNotifyEvent;
        FOnDblClick: TNotifyEvent;
        FOnMouseWheel: TMouseWheelEvent;
        FOnMouseWheelDown: TMouseWheelUpDownEvent;
        FOnMouseWheelUp: TMouseWheelUpDownEvent;
        FOnMouseDown: TMouseEvent;
        FOnMouseMove: TMouseMoveEvent;
        FOnMouseUp: TMouseEvent;
        // super 发现所有成员数据都是私有的,万一要需要使用,可以用属性来公开
      protected
        // 18个保护事件
        property OnClick: TNotifyEvent read FOnClick write FOnClick stored IsOnClickStored;
        property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
        property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;
        property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove;
        property OnMouseUp: TMouseEvent read FOnMouseUp write FOnMouseUp;
        property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel;
        property OnMouseWheelDown: TMouseWheelUpDownEvent read FOnMouseWheelDown write FOnMouseWheelDown;
        property OnMouseWheelUp: TMouseWheelUpDownEvent read FOnMouseWheelUp write FOnMouseWheelUp;
        //
        property OnCanResize: TCanResizeEvent read FOnCanResize write FOnCanResize;
        property OnConstrainedResize: TConstrainedResizeEvent read FOnConstrainedResize write FOnConstrainedResize;
        property OnContextPopup: TContextPopupEvent read FOnContextPopup write FOnContextPopup;
        property OnDragDrop: TDragDropEvent read FOnDragDrop write FOnDragDrop;
        property OnDragOver: TDragOverEvent read FOnDragOver write FOnDragOver;
        property OnEndDock: TEndDragEvent read FOnEndDock write FOnEndDock;
        property OnEndDrag: TEndDragEvent read FOnEndDrag write FOnEndDrag;
        property OnResize: TNotifyEvent read FOnResize write FOnResize;
        property OnStartDock: TStartDockEvent read FOnStartDock write FOnStartDock;
        property OnStartDrag: TStartDragEvent read FOnStartDrag write FOnStartDrag;
      public
        // super 发现所有成员数据都是私有的,万一要需要使用,可以用属性来公开
        // 构造函数等等,但没有公共事件
      published
        // 9个发布属性,但都不是事件
      end
    
      TWinControl = class(TControl)
      private
        // 9个事件,图形控件也有
        FOnEnter: TNotifyEvent;
        FOnExit: TNotifyEvent;
        FOnKeyDown: TKeyEvent;
        FOnKeyPress: TKeyPressEvent;
        FOnKeyUp: TKeyEvent;
        FOnGetSiteInfo: TGetSiteInfoEvent;
        FOnDockDrop: TDockDropEvent;
        FOnDockOver: TDockOverEvent;
        FOnUnDock: TUnDockEvent;
      protected
        // 9个保护事件
        property OnDockDrop: TDockDropEvent read FOnDockDrop write FOnDockDrop;
        property OnDockOver: TDockOverEvent read FOnDockOver write FOnDockOver;
        property OnEnter: TNotifyEvent read FOnEnter write FOnEnter;
        property OnExit: TNotifyEvent read FOnExit write FOnExit;
        property OnGetSiteInfo: TGetSiteInfoEvent read FOnGetSiteInfo write FOnGetSiteInfo;
        property OnKeyDown: TKeyEvent read FOnKeyDown write FOnKeyDown;
        property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;
        property OnKeyUp: TKeyEvent read FOnKeyUp write FOnKeyUp;
        property OnUnDock: TUnDockEvent read FOnUnDock write FOnUnDock;
      public
        // 没有公共事件
      published
        // 没有发布属性
    end;

    接下来,还有TForm和TPanel。不要小看了TPanel,其实它也是一个小页面,甚至也是很多自绘控件的基础类,功能简洁而又强大。

    --------------------------------------------------------------------------------------------------------------

    Delphi 中的常用事件

    1. OnActive 焦点称到窗体或控件时发生

    2. OnClick 鼠标单击事件

    3. OnDbClick 鼠标双击事件

    4. OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnCloseQuery事件 ,OnCloseQuery事件比OnClose具有更高的优先级。

    5. OnContextPopup 在窗体上单击鼠标右键时触发

    6. OnCreate 建立事件,窗件或控件第一次建立时发生。OnCreate事件只发生一次,用来执行初始化任务

    7. OnDeactivate 从当前程序切换到另一个应用程序时发生

    8. OnDestroy 卸载窗体或控件时被触发,用来清除窗体或控件所占的内存,或者其他的收尾工作

    9. nDragDrop和OnDragOver 如果有外部对象被拖放到控件上时触发

    10. OnMouseDown和OnMouseUp 响应鼠标在控件上的按下鼠标、释放鼠标的事件

    11. OnMouseMove 鼠标在控件上移动时被触发的事件

    12. OnHide 窗体或控件隐藏时触发的事件

    13. OnKeyDown、OnKeyPress、OnKeyUp 响应键盘事件

    14. OnPaint 窗体或控件需要重画时发生

    15. OnResize 窗体或控件调整大小时被触发的事件。当使用极大化、极小化按钮时此事件也会被触发

    16. OnShow 窗体或控件显示出来之前发生的事件

    17. OnMeasureItem 在ComboBox控件中改变选择项时发生的事件

    18. OnChange 在文本框、Image、ScrollBar等控件中的值被改变时发生

    19. OnScroll 拖动滚动条时被触发

    20. OnBandDrag和OnBandMove 当ControlBar内的对象被拖动和移动时触发

    21. OnActivate 焦点移到窗体上时触发

    22. OnClick 单击窗体或组件触发

    23. OnDblClick 双击窗体或组件触发

    24. OnCloseQuery 使用者试图关闭窗体触发

    25. OnClose 窗体关闭后才触发

    26. OnCreate 窗体创建时触发

    27. OnDragDrop 鼠标拖放操作结束时触发

    28. OnDragOver 有其他控件从他上面移过触发

    29. OnMouseDown 按下鼠标键时触发

    30. OnMouseUp 释放鼠标键时触发

    31. OnMouseMove 移动鼠标时触发

    32. OnHide 隐藏窗体时触发

    33. OnKeyDown 按下键盘某键时触发

    34. OnKeyPress 按下键盘上的单个字符键时触发

    35. OnKeyUp 释放键盘上的某键时触发

    36. OnPaint 窗体上有新部分暴露出来触发

    37. OnResize 重新调整窗体大小触发

    38. OnShow 在窗体实际显示之前瞬间触发

  • 相关阅读:
    把时间转换成你要的格式
    用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
    .NET(C#) win Form窗體常用設置
    合并两个DataTable
    truncate,delete,drop的异同点
    两个关于.NET读取EXCEL文件的问题,记下来,很有用!
    RCP之病人信息系统开发总结(8):MVC模式之View层—操作
    RCP之病人信息系统开发总结(9):MVC模式之View层—对话框
    RCP之病人信息系统开发总结(12):部署RCP应用程序
    RCP之病人信息系统开发总结(10):MVC模式之View层—首选项
  • 原文地址:https://www.cnblogs.com/findumars/p/4885156.html
Copyright © 2020-2023  润新知