A
apex
Unregistered / Unconfirmed
GUEST, unregistred user!
在一个自定义过程中动态建立窗口,在unit1中过程如下:
procedure TForm1.ShowFrm(FrmName:TForm; ClsName:string);
var F : Tformclass;
begin
if not assigned(Frmname) then
begin
F := TFormClass(findClass(clsname));
FrmName := F.Create(application);
FrmName.Show;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showfrm(form2,'tform2');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterClass(Tform2);
RegisterClass(Tform3);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
showfrm(form3,'tform3');
end;
在unit2中有以下代码用于释放窗口:
procedure TForm2.Button1Click(Sender: TObject);
begin
release;
form2 := nil;
end;
unit3中也有同样代码。
可是assigned函数的返回值每次都是nil,也就是说不能控制一个窗口的重复显示,用
findwindow函数也解决不了问题,各位请给我找找原因。(关于frmshow过程可参见
问题“105450”)
procedure TForm1.ShowFrm(FrmName:TForm; ClsName:string);
var F : Tformclass;
begin
if not assigned(Frmname) then
begin
F := TFormClass(findClass(clsname));
FrmName := F.Create(application);
FrmName.Show;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showfrm(form2,'tform2');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterClass(Tform2);
RegisterClass(Tform3);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
showfrm(form3,'tform3');
end;
在unit2中有以下代码用于释放窗口:
procedure TForm2.Button1Click(Sender: TObject);
begin
release;
form2 := nil;
end;
unit3中也有同样代码。
可是assigned函数的返回值每次都是nil,也就是说不能控制一个窗口的重复显示,用
findwindow函数也解决不了问题,各位请给我找找原因。(关于frmshow过程可参见
问题“105450”)