在一个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时就一直在想这个问题而未得其解,还请各位高手支持!!!!
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时就一直在想这个问题而未得其解,还请各位高手支持!!!!
button1和timer1为窗体上的控件sender,参数实质上就是button自己,控件是通过sender来知道传入的是什么控件。
**是:Published可视化的属性。
procedure Button1Click(sender :TObject)中的参数sender 是传值还是传地址(传引用 or 传指针)??
**传值的,但实际上是传的指针,可以通过SENDER修改他的属性的。
sender 就是当前的对象吧 这个我也不太清楚的 但是实际开发的时候很少这么用到sender的
2:Sender是传址...就是类的指针.
值参----实际是对值地址进行复制后传入,所以主调和被调之间使用的是两套数据,因此被调的操作不会影响主调中的数据;
变参----直接将地址传入,所以被调的操作将直接影响主调中的数据,因为他们使用的是一个数据;
常参----使用的也是同一数据,并且被调不可对数据进行修改。这里其实也是传地址;
out参----和变参一样,只不过将忽略进口值,只作为一个被调数据的输出接口来使用!
我想再问一下,procedure 中的参数sender究竟有什么用??
它传的是谁的值呢??
在你调用这个过程的时候,sender的值就是你调用过程时的类的对象。
和函数、过程的参数的作用是一样的。
主要是用于在你触发事件的时候执行不同的代码。
窗口接受到通知后会处理。在处理时窗口要知道是谁发出这个通知。(窗口中可以接受很多控件的通知)
sender 参数这果可以指明是Button发出的。
2:是传的指针
Sender谁调用就传谁,button1调传button1,button2调传button2那么Sender是不是和C++里的this很象了。刚从VC转到Dephi,不懂的问。