如何判断一个窗体是否已经存在了
procedure TFmmain.N9Click(Sender: TObject);
var
fm:tform;
begin
begin
fm:=tfmproj.Create(self);
fm.FormStyle:=fsmdichild;
end;
当我在一次点击时有出现一个一样的窗体;我想如果它已经存在的话就不要在创建了
fmproj就是显示的窗体
procedure TFmmain.N9Click(Sender: TObject);
var
fm:tform;
begin
begin
fm:=tfmproj.Create(self);
fm.FormStyle:=fsmdichild;
end;
当我在一次点击时有出现一个一样的窗体;我想如果它已经存在的话就不要在创建了
fmproj就是显示的窗体
解决方案 »
- StringGrid中如何通过代码选中某个单元格?
- 开个贴子,专门讨论一下cxGrid,用过的进来看看
- 很简单也给100分,Hook.DLL,PB调用,SendMessage的问题。
- 有关Try.. Except..捕捉异常的问题~
- 小女子有难题了,请各位大侠相助,小女子在这里先谢了
- delphi参数类型有哪些?
- 求助:Delphi 连接sql server
- SPCOMM控件的安装问题
- 关于SpeedButton的显示问题
- 我刚学Delphi不太懂它的用法,请帮我看看哪儿错了
- 如何获取网页中的Jscript对象,并给它赋值?可以用WebBrowser控件实现吗?
- quickreport怎样横向打印呢?
TForm1 = class(TForm)
procedure N9Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
fm: tform;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TFmmain.N9Click(Sender: TObject);
begin
if not Assigned(fm) then
begin
fm := tfmproj.Create(self);
fm.FormStyle := fsmdichild;
end;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
fm.Free;
end;
if not assigned(form2) then
begin
form2:=Tform2.Create(self);
form2.Show();
end
else
begin
form2.BringToFront;
form2.SetFocus;
end;
FormName := TFormName.create(self);
FormName.show;
var Child:TForm;
i:integer;
begin
for i:=0 to Screen.FormCount-1 do
begin
if (Screen.Forms[i] is FormClass) then
begin
Child:=Screen.Forms[i];
if not Child.Visible then Child.Visible:=true;
if Child.WindowState=wsMinimized then
Child.WindowState:=wsNormal;
Child.BringToFront;
exit;
end;
end;
FormClass.NewInstance;
Child:=FormClass.Create(Owner);
TForm(fm):=Child;
end;
fm.show();
except
fm := tfmproj.Create(self);
end;
if not Assigned(user_manage_form) then
user_manage_form:=Tuser_manage_form.Create(Application);
user_manage_form.Show;
end;
if not assigned(FormName) then
FormName := TFormName.create(self);
FormName.show;这个很简结;
if not assigned(yourform) then begin
application.createform(TYOurform,yourform);
try
yourform.showmodal
finally
yourform.free
yourform:=nil;
end;
end;
else
yourform.showmodal
end;
調用格式OpenForm(FormClass,FormName,Owner)
if not assigned(FormName) then
begin
FormName:=Tform2.Create(self);
try
FormName.FormStyle := fsmdichild;
FormName.ShowModal();
Finally
FreeAndNil(FormName);
end;
end;
或者
if not assigned(FormName) then
begin
FormName:=Tform2.Create(self);
try
FormName.FormStyle := fsmdichild;
FormName.Show();
Finally
FreeAndNil(FormName);
end;
end
else
begin
form2.BringToFront;
form2.SetFocus;
end;
已经存在
FormName.show;
except
FormName:=TFormName.create(application);
end;
Form2.Show
else
TForm2.Create(Application);
if formhandle=0 then
yourform.create;
yourform.show;
2.if yourform=nil then
yourform.create;
yourform.show;
FormName := TFormName.create(self);
FormName.show;
procedure TForm1.Formclose(Sender: TObject);
begin
formname.Free;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
formname:=nil;//free掉了还好把它的指针清空
end;