教
教父
Unregistered / Unconfirmed
GUEST, unregistred user!
我们知道在Delphi中,参数传递有两种方式:传值和传址,一个变量如果是传值方式传递的话,
在函数或是过程中对参数的修改并不会影响此变量,举例说明:
procedure ChangeVal(i:integer);
begin
inc(i);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=1;
ChangeVal(i);
ShowMessage(Format('%d',));
end;
ChangeVal将传入的参数加1,但是很显然,Button1Click过程显示的i值仍然为1,因为
ChangeVal的参数传递方式采用的是传值的方式。
那再来看看下面这个例子:
procedure TForm1.Button1Click(Sender: TObject);
begin
TButton(Sender).Caption:='Changed';
end;
这是由Delphi自动生成的Button1的OnClick事件处理代码,很明显,这里的Sender是通过
传值的方式传递的,但是那个Button1的Caption又确实被改变了,这是为什么?
如果你无法回答这个问题的话,我真切地奉劝你,踏踏实实地把Delphi从头至尾地啃一啃,
而不要去研究什么浏览器、播放器、黑客程序等等。
在函数或是过程中对参数的修改并不会影响此变量,举例说明:
procedure ChangeVal(i:integer);
begin
inc(i);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=1;
ChangeVal(i);
ShowMessage(Format('%d',));
end;
ChangeVal将传入的参数加1,但是很显然,Button1Click过程显示的i值仍然为1,因为
ChangeVal的参数传递方式采用的是传值的方式。
那再来看看下面这个例子:
procedure TForm1.Button1Click(Sender: TObject);
begin
TButton(Sender).Caption:='Changed';
end;
这是由Delphi自动生成的Button1的OnClick事件处理代码,很明显,这里的Sender是通过
传值的方式传递的,但是那个Button1的Caption又确实被改变了,这是为什么?
如果你无法回答这个问题的话,我真切地奉劝你,踏踏实实地把Delphi从头至尾地啃一啃,
而不要去研究什么浏览器、播放器、黑客程序等等。