还有用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了出来。