J
jackchin
Unregistered / Unconfirmed
GUEST, unregistred user!
一个局部的变量, 类类型, 初始的值总是Sender, 例如
procedure TForm1.Button1Click(Sender: TObject);
var
//I: Integer;
F: TLabel;
begin
//I := 0;
//if I = 0 then Beep;
ShowMessage(F.ClassName);
end;
显示是TButton, 奇怪的是无论F放在任何位置(将注释去掉), 总是这样
通过以下语句, 进一步证实这个现象
ShowMessage(IntToStr(Integer(Sender)));
ShowMessage(IntToStr(Integer(F)));
但是, ShowMessage(IntToStr(I)), 结果就不相同
最后, 如果加上 F.Free, 连Button1(就是Sender)都不见了,
可见 F = Sender, 为什么这样?
procedure TForm1.Button1Click(Sender: TObject);
var
//I: Integer;
F: TLabel;
begin
//I := 0;
//if I = 0 then Beep;
ShowMessage(F.ClassName);
end;
显示是TButton, 奇怪的是无论F放在任何位置(将注释去掉), 总是这样
通过以下语句, 进一步证实这个现象
ShowMessage(IntToStr(Integer(Sender)));
ShowMessage(IntToStr(Integer(F)));
但是, ShowMessage(IntToStr(I)), 结果就不相同
最后, 如果加上 F.Free, 连Button1(就是Sender)都不见了,
可见 F = Sender, 为什么这样?