还有用Delphi7的没?一个关于属性的有关问题
还有用Delphi7的没?一个关于属性的问题。
不知道为什么,我在一个Form派生类中定义的属性外部调用Show 方法之前赋值时在Show方法里不起作用:
Form派生类里属性的定义:
private
{ Private declarations }
FTest: string;
published
property Test:string read FTest write FTest;
类里的Show方法
procedure TPersonalFileFrm.FormShow(Sender: TObject);
begin
ShowAlarmMsg(FTest);
end;
为测试,我又在Form上加一个测试按钮,代码如下:
procedure TPersonalFileFrm.Button1Click(Sender: TObject);
begin
inherited;
ShowAlarmMsg(FTest);
end;
调用这个类的代码如下:
if not Assigned(PersonalFileFrm) then PersonalFileFrm := TPersonalFileFrm.Create(nil);
PersonalFileFrm.DeleteConfirm := true;
PersonalFileFrm.Test := 'this is test string.';
PersonalFileFrm.Show;
问题是这样的:
Show方法弹出的对话框是空字符串,测试按钮弹出的是正确赋值的字符串,Why?
------解决思路----------------------
你把Form的visible属性设成false看看。可能缺省是true,它就自动show了出来。
不知道为什么,我在一个Form派生类中定义的属性外部调用Show 方法之前赋值时在Show方法里不起作用:
Form派生类里属性的定义:
private
{ Private declarations }
FTest: string;
published
property Test:string read FTest write FTest;
类里的Show方法
procedure TPersonalFileFrm.FormShow(Sender: TObject);
begin
ShowAlarmMsg(FTest);
end;
为测试,我又在Form上加一个测试按钮,代码如下:
procedure TPersonalFileFrm.Button1Click(Sender: TObject);
begin
inherited;
ShowAlarmMsg(FTest);
end;
调用这个类的代码如下:
if not Assigned(PersonalFileFrm) then PersonalFileFrm := TPersonalFileFrm.Create(nil);
PersonalFileFrm.DeleteConfirm := true;
PersonalFileFrm.Test := 'this is test string.';
PersonalFileFrm.Show;
问题是这样的:
Show方法弹出的对话框是空字符串,测试按钮弹出的是正确赋值的字符串,Why?
------解决思路----------------------
你把Form的visible属性设成false看看。可能缺省是true,它就自动show了出来。