Delphi 中关于Button的OnClick的思考
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
Type
TForm1 = Class(TForm)
Panel1: TPanel;
Button1: TButton;
Procedure Button1Click(Sender: TObject);
Procedure Panel1Click(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
End;
Var
Form1 : TForm1;
Implementation
{$R *.dfm}
Procedure TForm1.Button1Click(Sender: TObject);
Begin
ShowMessage('Button1Click');
End;
Procedure TForm1.Panel1Click(Sender: TObject);
Begin
//如果TForm1内有 Button1: TButton;,那么下面两方式都是对 button1的onclick调用,
Form1.Button1Click(form1);
//是直接调用TForm1的Button1Click过程,跟button1对象是否存在没有关系,
//如果在窗体设计面版中删除button1对象,仍能运行
Form1.Button1.Click;
//是直接调用Button1对象的Click过程,跟button1对象有直接关系,
//如果在窗体设计面版中删除button1对象,此方法也不存在
//如果我们把一个其他能产生click控件产生一个其click过程时,
//该过程以其控件名[button1+click+(Sender: TObject)相应的参数]自动生成方法名,
//如果在窗体设计面版中删除该对象,对象声名删除Button1: TButton;,
//但其产生的方法(如click,mousedown等等),并没有被相应删除,
//如果我们再新建一个同名但不类的控件时,
//只要在Object Inspector里的Events属性卡双击相应的过程,仍会关联上原来的过程,
//虽然这两者没有必然的联系.
End;
End.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律