我自己的一个函数,可以创建窗体或打开一创建的窗体:procedure OpenForm(FormClass: TFormClass; var fm; AOwner:TComponent);
var i: integer;
Child:TForm;
begin for i := 0 to Screen.FormCount -1 do
BEGIN if Screen.Forms[i].ClassType=FormClass then
begin
Child:=Screen.Forms[i];
if Child.WindowState=wsMinimized then
ShowWindow(Child.handle,SW_SHOWNORMAL)
else
ShowWindow(Child.handle,SW_RESTORE);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
END; //for end Child:=TForm(FormClass.NewInstance);
TForm(fm):=Child;
child.Create(AOwner);关闭窗体:在窗体的close 事件中加入:
action:=cafree;
var i: integer;
Child:TForm;
begin for i := 0 to Screen.FormCount -1 do
BEGIN if Screen.Forms[i].ClassType=FormClass then
begin
Child:=Screen.Forms[i];
if Child.WindowState=wsMinimized then
ShowWindow(Child.handle,SW_SHOWNORMAL)
else
ShowWindow(Child.handle,SW_RESTORE);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
END; //for end Child:=TForm(FormClass.NewInstance);
TForm(fm):=Child;
child.Create(AOwner);关闭窗体:在窗体的close 事件中加入:
action:=cafree;
解决方案 »
- 求delphi画弧控件
- RFID串口初始化有问题
- AdvStringGrid1
- 如何取得Windows文件操作的记录,也就是说复制粘贴这些操作的日志记录
- 别人用paradox7建了个t.db的数据库,其中sn字段的table properties 的dependent tables为as.db,我现在往打开t.db数据库增加不了记录。如
- 在取消按钮中如果你取消批量edit中的text的内容,你是一个个edit1.text="" edit2.text=""还是使用其他方法
- 如何发送16进制数???急啊!!!
- 关于ADO组件的问题
- 哪位知道有好用的能识别图片上的文字这类的软件吗?
- oracle 代码集问题,急!!!在线等待,立刻给分!!
- 怪!怪!!怪!!!
- 有在东莞工作的朋友吗?进来领分。
子窗体.Create(Self)
关闭:
在子窗体的OnClose事件中设置Action := caFree,或者新建一个子窗体,该窗体上不放任何控件,在该窗体的OnClose事件中设置Action := caFree,其它子窗体从该窗体继承。