首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

根据Sender怎么找到控件的指针(迷糊死了)

2012-02-24 
根据Sender如何找到控件的指针(迷糊死了)问题如下,例如一个控件label1其单击过程OnClick中含有变量sender

根据Sender如何找到控件的指针(迷糊死了)
问题如下,
例如一个控件label1
其单击过程OnClick中含有变量sender
我想知道怎样根据这个sender找到
label1的指针
前提是不允许直接使用@label1,要根据Sender这个变量来确定


[解决办法]
Sender: 事件的触发者. 演示如下:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Label1_2_3_Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Label1_2_3_Click(Sender: TObject);
var
P : Pointer;
begin
Showmessage(TLabel(Sender).Name);
//也可以这样理解:
P := Sender;
Showmessage(TLabel(P).Name);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.OnClick := Label1_2_3_Click;
Label2.OnClick := Label1_2_3_Click;
Label3.OnClick := Label1_2_3_Click;
end;

end.

热点排行