一个简单的问题,请高手解答!!!

wwzg 2003-10-20 01:38:12
在一个form下的代码:
unit unit1;
interface
uses .....
type
TForm1 = class(TForm)
Button1:TButton;
Timer1:TTimer;
procedure Button1Click(sender :TObject);
procedure Timer1Timer(sender:TObject);
private:
{..}
public :
{..}
end;
var
Form1:TForm1;
..
..
implementation
{$R*.dfm}
....
...
end.
请问各位:Button1(:TButton)和 Timer1(:TTimer)是类TForm1的成员变量吗??是public 还是private的??
procedure Button1Click(sender :TObject)中的参数sender 是传值还是传地址(传引用 or 传指针)??
本人比较菜,刚学delphi时就一直在想这个问题而未得其解,还请各位高手支持!!!!
...全文
29 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwzg 2003-10-22
  • 打赏
  • 举报
回复
多谢了!
wangbab 2003-10-21
  • 打赏
  • 举报
回复
借宝地问问。

to herofy(雄鸡破晓) ( )
Sender谁调用就传谁,button1调传button1,button2调传button2

那么Sender是不是和C++里的this很象了。刚从VC转到Dephi,不懂的问。
chenkandy 2003-10-21
  • 打赏
  • 举报
回复
1.是form1类的成员 都是public
2:是传的指针
gold_future 2003-10-21
  • 打赏
  • 举报
回复
用户用鼠标向 Button 发出单击事件。 Button 会像窗口发出通知 ,
窗口接受到通知后会处理。在处理时窗口要知道是谁发出这个通知。(窗口中可以接受很多控件的通知)
sender 参数这果可以指明是Button发出的。
herofy 2003-10-21
  • 打赏
  • 举报
回复
Sender谁调用就传谁,button1调传button1,button2调传button2
pingo888 2003-10-21
  • 打赏
  • 举报
回复
正如楼上兄弟所说,Sender 属于Tobject类型,
主要是用于在你触发事件的时候执行不同的代码。
yaven365 2003-10-21
  • 打赏
  • 举报
回复
1.是form1类的成员

2.sender是一个参数,它是tobject(delphi中最基本的类)的一个类

在这里实际上传递的就是Button1

以上答案是出自<<kylix开发人员指南>>,应该不错!
FrameSniper 2003-10-21
  • 打赏
  • 举报
回复
Sender主要用来根据触发当前事件的控件的不同执行不同的代码
whqcfp 2003-10-21
  • 打赏
  • 举报
回复
sender 是TObject 类型的,主要用处就是:
在你调用这个过程的时候,sender的值就是你调用过程时的类的对象。
和函数、过程的参数的作用是一样的。
wwzg 2003-10-21
  • 打赏
  • 举报
回复
多谢各位答复,
我想再问一下,procedure 中的参数sender究竟有什么用??
它传的是谁的值呢??
FrameSniper 2003-10-21
  • 打赏
  • 举报
回复
是,作用一致
qingfengsishi 2003-10-20
  • 打赏
  • 举报
回复
学习
EastBuBai 2003-10-20
  • 打赏
  • 举报
回复
是成员变量,而且是public的

是传值,不是传地址
FrameSniper 2003-10-20
  • 打赏
  • 举报
回复
第二个问题我想补充一下:方法或例程的参数无非就四中类型,值参数,变量参数,常量参数和out类型参数!如果单纯从计算机角度来看这四种参数,实际上传递的都是一个地址值,这些地址值具体保存在那里和调用时的约定直接相关。当主调方法(或例程)调用被调方法(或例程)的时候,对于不同的参数,在被调方法(或例程)中相应的操作对主调方法(或例程)中对应的数据影响也会不同,如下:
值参----实际是对值地址进行复制后传入,所以主调和被调之间使用的是两套数据,因此被调的操作不会影响主调中的数据;
变参----直接将地址传入,所以被调的操作将直接影响主调中的数据,因为他们使用的是一个数据;
常参----使用的也是同一数据,并且被调不可对数据进行修改。这里其实也是传地址;
out参----和变参一样,只不过将忽略进口值,只作为一个被调数据的输出接口来使用!
FrameSniper 2003-10-20
  • 打赏
  • 举报
回复
是成员变量,而且是public的

是传值,不是传地址
pankun 2003-10-20
  • 打赏
  • 举报
回复
1:是类的成员
2:Sender是传址...就是类的指针.
angle097113 2003-10-20
  • 打赏
  • 举报
回复
TButton,TTimer和TForm是一样的 都是类 只是在TForm用到了前面两个类的变量 所以的引用那两个类
sender 就是当前的对象吧 这个我也不太清楚的 但是实际开发的时候很少这么用到sender的
zhoutian618 2003-10-20
  • 打赏
  • 举报
回复
请问各位:Button1(:TButton)和 Timer1(:TTimer)是类TForm1的成员变量吗??是public 还是private的??
**是:Published可视化的属性。
procedure Button1Click(sender :TObject)中的参数sender 是传值还是传地址(传引用 or 传指针)??
**传值的,但实际上是传的指针,可以通过SENDER修改他的属性的。
dickeybird888 2003-10-20
  • 打赏
  • 举报
回复
//不知道说的对不!
button1和timer1为窗体上的控件

sender,参数实质上就是button自己,控件是通过sender来知道传入的是什么控件。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧