几个概念性的问题(20分)

  • 主题发起人 主题发起人 loding
  • 开始时间 开始时间
L

loding

Unregistered / Unconfirmed
GUEST, unregistred user!
1。 procedure Button1Click(Sender: TObject);
其中(Sender: TObject)指的是什么?

2。 可以自定义事件吗?
 
可以自定义事件呀。
unit Unit1;

interface

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

type
TForm1 = class(TForm)
//这可以。
private //这可可以定义
{ Private declarations }
public//这也可以
{ Public declarations }
end;
 
过程说明的语法是这样的:
procedure 过程名([var]参数:类型)
变量声明;
begin

语句;
end;


过程,函数都是可以自定义的.
如果在你的公共部分定义在别的相关的form里,还可以调用这个自定义的过程或者函数.
 
Sender就是指这个按钮
 
1,Sender指的是触发这个事件的控件实例。
2,可以。BTW:楼上各位看仔细了,是'自定义事件'
 
1,Sender是指触發這個事件的對象﹔在共用事件時才有用﹒
2﹐可以自定義事件﹕
procedure Button_Click(Sender:TObject);Message WM_MouseClick;
begin


end;
 
关于(Sender:TObject)我还是不太明白。
blue girl 说的“Sender是指触發這個事件的對象﹔在共用事件時才有用﹒”
怎么理解呢?
sender是TObject类型的一个变量吗?
”Sender是指触發這個事件的對象“ 那sender有什么用呢?

 
初学者,别见笑。

我是这样理解的。当控件需要共享相同的事件处理代码时,就可以用SENDER来区分使用者。
 
1。其实在文件中隐含有button1.onclick=Button1Click;
这可以在窗体相关的dfm中找到。而onclick是一个TNotifyEvent,TNotifyEvent的定义为TNotifyEvent = procedure(Sender: TObject) of object;
说简单点,就是程序接收到一按一放的消息,就调用Button1Click(sender);
sender究竟是什么依赖于调用方。vcl中为接到消息的对象。
2.自定义事件有几种方法:1。从procedure WndProc(var Message: TMessage);
中检查消息并处理
2。直接截获固定消息并处理 如:procedure WMLButtonUp(var Message: TWMLButtonUp);
message WM_LBUTTONUP;
3。直接使用已包装过的事件:如button1.onclick=Button1Click;
 
sender已经有人答了。

我答那个自定义事件吧。
自定义事件要注意参数个数,类型。

procedure Button_Click(Sender:TObject);
begin

Button1Click(sender);//假设Button1Click是某个按钮的单击事件
end;

//注:事件也可以通过赋值。
//这个星期不知道有没有时间,如果三天之内没有答复,我可以写一段包含使用自定义事件(包含sender)的代码帖上来。
 
接受答案了.
 
不好意思。没留意!
timerri的回复很好!
 
后退
顶部