爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • Smart帮助主页
  • 学习手册

    • 基本入门

    • 功能介绍

    • 控件说明

      • 公共属性
      • 公共方法
      • 公共事件
        • 1. 公用事件
          • 1.1. OnCanResize事件
          • 1.2. OnChange事件
          • 1.3. OnClick事件
          • 1.4. OnDblClick事件
          • 1.5. OnDragDrop事件*
          • 1.6. OnDragOver事件*
          • 1.7. OnEnter 事件
          • 1.8. OnKeyDown事件
          • 1.9. OnKeyPress事件
          • 1.10. OnKeyUp事件
          • 1.11. OnMouseDown事件
          • 1.12. OnMouseMove事件
          • 1.13. OnMouseUp事件
          • 1.14. OnStartDrag事件*
          • 1.15. OnShow事件*
          • 1.16. OnClose事件*
          • 1.17. OnActivate事件*
      • 窗口控件
      • 系统控件
      • 标准控件
      • 对话框控件
      • 标准工控控件
      • 专业工控控件
      • 数据控制控件
      • 数据表格控件
      • 数据感知控件
      • 通讯控制控件
      • 仪表采集控件
      • 监控视频控件
      • 数据图表控件
      • 流程图表控件
      • 数据分析控件
      • 复合数控控件
      • 模拟数控控件
      • 调节数控控件
      • 数位数控控件
      • 数据数控控件
      • 地图控件
      • 其他控件
      • SVG控件
      • IsoBean控件
      • 样式控件
      • 样式外观控件
      • 样式高级控件
      • 样式工具控件
      • 样式数据控件
      • 样式控件GP
      • 样式数据控件GP
    • 功能用法

    • 专用模板

    • 开发流程

    • 函数程序

  • 开发手册

目录

公共事件

# Smart 公共事件


# 1. 公用事件

  有些事件对所有组件都是通用的,这些事件可以是与键盘有关的事件,也可以是与光标输入有关的事件,还可以是由于组件本身的状态改变(属性)或由于组件发生了某种行为(操作)而触发的事件。其中与键盘和光标相关的事件常常是大多数组件共有的事件,下表列出了 其中的一些事件及说明。

事件 适用范围 触发条件
OnCanResize 很多组件 发生在组件大小改变时,并允许用户停止操作
OnChange 很多组件 发生在对象或其他数据改变时
OnClick 大部分组件 发生在用鼠标单击组件时
OnDblClick 很多组件 发生在用鼠标双击组件时
OnDragDrop 大部分组件 发生在停止拖动组件时
OnDragOver 大部分组件 发生在用鼠标拖动组件时
OnEnter 窗口组件 发生在组件被激活时,即组件接受焦点时
OnKeyDown 窗口组件 发生在按住键不松开时,该箏件向具有输入焦点的组件发送
OnKeyPress 窗口组件 发生在按键过程中,该事件向具有输入焦点的组件发送
OnKeyUp 窗口组件 发生在松开键时,该事件向具有输入焦点的组件发送
OnMouseDown 大部分组件 发生在按下光标时,向光标所在组件发送
OnMouseMove 大部分组件 发生在移动光标时,向光标所在组件发送
OnMouseUp 大部分组件 发生在释放光标时,向光标所在组件发送
OnStartDrag 大部分组件 发生在组件开始被拖动时
OnShow 大部分组件 当组件或窗体显示的时候
OnCIose 大部分组件 当组件或窗体关闭的时候
OnActivate 大部分组件 当组件激活时

# 1.1. OnCanResize事件

property OnCanResize: TCanResizeEvent;
1

  当窗体大小改变时触发该事件,利用该功能可控制窗体是否可以改变其大小。

  • 应用
      当窗体的大小改变到一定的范围时就停止改变。
procedure TMyHandler.BASEFORMCANRESIZE;
//窗体改变时触发事件 ,限制大小
begin
  if((NewWidth > 700) or (NewHeight > 500)) or ((NewWidth < 300) or (NewHeight < 200)) then
    Resize := False
  else
    Resize := True;
end;
1
2
3
4
5
6
7
8

# 1.2. OnChange事件

type TNotifyEvent = procedure (Sender: TObject) of object; 
property OnChange: TNotifyEvent;
1
2

  编辑组件中的文本发生改变时触发该事件,编写其事件处理程序可执行特定的功能。利用Modified属性查看是否实际改变,编辑组件的Text属性已经被更新来反映所做的改变。OnChange事件提供了第1次响应用户输入编辑组件的通知。

  • 应用
      OnChange事件是当文本框里的内容改变时被触发的。可以利用该事件提示用户输入合法数据。
procedure TMyHandler.EDIT1CHANGE;
begin
  if FThis.Edit1.Text = '' then exit;
  try
    StrToFloat(Trim(FThis.Edit1.Text));
  except
    ShowMessage('请输入数字');
    FThis.Edit1.SetFocus;
    exit;
  end;
end;

1
2
3
4
5
6
7
8
9
10
11
12
OnChange事件应用界面

# 1.3. OnClick事件

property OnClick: TNotifyEvent;
1

  当用户用鼠标单击按钮时触发OnClick事件。

  • 应用
      在设计程序时,如果使用按钮组件,几乎都会用到OnClick事件。当用户单击按钮时,程序会调用按钮的OnClick事件处理过程。
procedure TMyHandler.BUTTON1CLICK;
begin
  if paxfunc.YesNoMsg('确定要关闭此程序吗?','提示') then
    FThis.Close;
end;
1
2
3
4
5
点击“确认”按钮,出现关闭程序的提示

# 1.4. OnDblClick事件

type TNotifyEvent = procedure (Sender: TObject) of object; 
property OnDblClick: TNotifyEvent;
1
2

  双击组件产生该事件,可用该事件编写响应双击事件的代码。

  • 应用
      OnDblClick事件足在用户双击面板时被触发。
procedure TMyHandler.PANEL1DBLCLICK;
//双击面板触发该事件
begin
  ShowMessage('用户双击了滚动框');
end;
1
2
3
4
5
双击事件

# 1.5. OnDragDrop事件*

type TDragDropEvent = procedure(Sender, Source: TObject; X, Y: Integer) of object;
property OnDragDrop: TDragDropEvent;
1
2

  OnDragDrop事件是在用户放下一个正被拖动的对象时被触发,其事件处理程序可指定用户放下一个对象时需要执行的行为。Source参数指定放下的对象,Sender指定放置对象的组件,X和Y是鼠标在组件上的位罝坐标。


# 1.6. OnDragOver事件*

TDragOverEvent = procedure(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean) of object; 
property OnDragOver: TDragOverEvent;
1
2

  当用户在组件上拖动对象时触发该事件,使用这个事件可用信号通知组件接受拖动的对象,使用户放下或停靠对象。在该事件处理程序中将Accept参数设置为 False表示拒绝被拖动对象,设置为True表示允许用户在组件上放下或停靠被拖动对象。

  在触发这个事件前修改组件的DragCursor属性值可改变光标的形状,表示组件可接受被拖动对象。

  Source参数指定拖动对象,Sender指定可能放下或停靠的位置,X和Y是屏幕的像素坐标, State指定拖动对象在组件上移动的方法。

  说明:在该事件处理程序内,Accept参数默认为True。但如果未提供该事件处理程序,则组件拒绝被拖动对象,如同Accept参数设置为False。


# 1.7. OnEnter 事件

type TNotifyEvent = procedure (Sender: TObject) of object; 
property OnEnter: TNotifyEvent;
1
2

  当组件接受输入焦点时触发该事件。,窗口组件变为激活状态时,可使用其事件处理程序 执行指定的处理。当在窗体之叫转换,或在包含窗体组件的应用程序与另一个Windows应用程 序之阆转换时,该事件不会被触发。当在组件之间转化时,而这些组件分别在不同的容器组件 中,例如在TPanel和TGroupBox组件中时,则在触发组件的这个事件前先触发容器组件的OnEnter 事件。

  • 应用
      OnEnter事件在编辑框获得焦点时被触发。
procedure TMyHandler.BUTTON1CLICK;
//点击以获得焦点
begin
  FThis.Edit1.SetFocus;
end;

procedure TMyHandler.EDIT1ENTER;
//接受输入焦点时触发
begin
  ShowMessage('编辑框获得了焦点');
end;
1
2
3
4
5
6
7
8
9
10
11
Edit1获得焦点时弹出消息框

# 1.8. OnKeyDown事件

type TKeyEvent = procedure (Sender: TObject; var Key: Word; Shift: TShiftState) of object; 
property OnKeyDown: TKeyEvent;
1
2

  当键盘的键被按下时触发该事件,并可与组合键一起使用。

  • 应用
      当用户按下键盘时显示相应的键值,按下Shift按键时不显示。
procedure TMyHandler.EDIT1KEYDOWN;
//按下字母或数字键盘时触发
begin
  FThis.KeyPreview := True;
  if (Key <> 16) and (Key <> 18) then
  FThis.Edit2.Text := IntToStr(Key); 
end;
1
2
3
4
5
6
7
按下按键时显示对应的键值

# 1.9. OnKeyPress事件

type TKeyPressEvent = procedure (Sender: TObject; var Key: Char) of object; 
property OnKeyPress: TKeyPressEvent;
1
2

  当用户按下单个字符键时触发该事件,使用其事件处理程序可执行单个字符被按下时的特定操作。在这个事件 处理程序中,Key参数为Char类型,W此该事件注册按键 的ASCII字符。不符合ASCII字符值的键(如Shift或F1) 不触发该事件。组合键(如Shift+A)只触发一个该事件(例如如果Caps Lock键为闭状态,则Shift+A将产生A值)。 如果要响应非ASCII键或组合键,则使用OnKeyDown或 OnKeyUp事件处理程序。

  • 应用
      OnKeyPress事件是在用户按下一个单字符键时被触发。在程序中,可以利用该事件来防止用户输入非法字符。
procedure TMyHandler.EDIT2KEYPRESS;
//当键盘按下时触发,只允许输入数字
begin
  FThis.KeyPreview := True;
  if Not (Key in ['0' .. '9', #8]) then
  Key := #0;
end;
1
2
3
4
5
6
7
年龄编辑框只允许输入数字

# 1.10. OnKeyUp事件

property OnKeyUp;
1

  当用户释放己经按下的键时触发该事件,使用其事件处理程序可在按键被释放时执行特定的处理。这个处理程序可响应所有键盘键,包括功能键和与Shift、Alt或Ctrl键的组合键。

  • 应用
      OnKeyUp事件是在用户释放已经按下的按键时被触发。可以使用该事件來显示单字符键的ASCII码。
procedure TMyHandler.EDIT1KEYUP;
//释放键盘时触发该事件
begin
  ShowMessage(IntToStr(ord(Key)));
end;
1
2
3
4
5
按下抬起按键时显示按键ASCII码

# 1.11. OnMouseDown事件

type TMouseEvent = procedure (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) of object; 
property OnMouseDown: TMouseEvent;
1
2

  使用该事件的处理程序可处理按下鼠标按钮的操作,即响应按下左、石和中鼠标按钮以及转换键和鼠标按钮的组合。转换键为Shift、Ctrl和Alt键。X和Y参数为鼠标指针在Sender参数客户区的像素坐标。

  • 应用
      OnMouseDown事件在用户按下鼠标按钮时被触发。参数Sender指定触发OnMouseDown 事件的对象,Button表示用户按的鼠标按钮,Shift表示用户按的功能键(Shift、Ctrl或Alt),X、Y参数用于确定鼠标坐标。
procedure TMyHandler.PANEL1MOUSEDOWN;
//按下鼠标按键时触发
begin
  if Button = mbLeft then
    ShowMessage('用户按了鼠标左键')
  else if Button = mbRight then
    ShowMessage('用户按了鼠标右键')
  else
    ShowMessage('用户按了鼠标中键');
end;
1
2
3
4
5
6
7
8
9
10
鼠标点击面板,显示界面

# 1.12. OnMouseMove事件

type TMouseMoveEvent = procedure(Sender: TObject; Shift: TShiftState; X, Y: Integer) of object; 
property OnMouseMove: TMouseMoveEvent;
1
2

  使用该事件处理程序可处理在组件上移动鼠标光标的操作,使用Shift参数,可确定转换键的状态和鼠标按钮。转换键包括Shift、Ctrl和Alt键。X和Y参数为鼠标指针在Sender参数客户区的像素坐标。

  • 应用
      当鼠标在面板和按钮上移动时触发OnMouseMove事件。
procedure TMyHandler.PANEL1MOUSEMOVE;
//鼠标移动到面板上时,按钮字体变大
begin
  FThis.Button1.Font.Size := 12;
end;

procedure TMyHandler.BUTTON1MOUSEMOVE;
//鼠标移动到按钮上时,按钮字体变小
begin
  FThis.Button1.Font.Size := 8;
end;
1
2
3
4
5
6
7
8
9
10
11
鼠标移动到面板上时,按钮字体变大

# 1.13. OnMouseUp事件

type TMouseEvent = procedure (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer) of object; 
property OnMouseUp: TMouseEvent;
1
2

  使用该事件处理程序可处理用户释放鼠标按钮时的操作,即响应按下左、右和中鼠标按钮及转换键和按钮的组合。转换键为Shift、Ctrl和Alt键。X和Y参数为鼠标指针在Sender参数客户区的像素坐标。

  • 应用
      点击按钮释放时触发OnMouseUp事件。
procedure TMyHandler.BUTTON1MOUSEUP;
//当用户释放鼠标按键时触发该事件
begin
  FThis.Button1.Font.Size := 12;
end;

procedure TMyHandler.BUTTON1MOUSELEAVE;
//当鼠标离开按钮时触发该事件
begin
  FThis.Button1.Font.Size := 8;
end;
1
2
3
4
5
6
7
8
9
10
11

# 1.14. OnStartDrag事件*

type TStartDragEvent = procedure (Sender: TObject; var DragObject: TDragObject) of object; 
property OnStartDrag: TStartDragEvent;
1
2

  当开始拖动组件或一个对象并且DragKind为dkDrag时触发该事件,其事件处理程序可处理拖动操作,为DragObject参数创建TDragControlObject实例,以指定拖动光标或一个任选的拖动图像列表。Sender参数为将要拖动组件或对象的包容器。拖动结束时,不需要为DragObject调用Free方法。

  如果该事件处理程序设置DragObject参数为NULL,则自动创建TDragControlObject对象 并从组件自身开始拖动。


# 1.15. OnShow事件*

property OnShow: TNotifyEvent;
1

  当窗体被显示时触发该事件执行指定的处理。


# 1.16. OnClose事件*

TCloseAction = (caNone, callide, caFree, caMinimize);
TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object; 
property OnClose: TCloseEvent;
1
2
3

  OnClose事件发生在窗体关闭时,用于指定当一个窗体将要关闭时应访问哪一个事件处理者。


# 1.17. OnActivate事件*

property OnActivate: TNotifyEvent;
1

  激活窗体时触发该事件,当窗体接受焦点时用OnActivate处理指定的过程。


公共方法
窗口控件

← 公共方法 窗口控件→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式