procedure OpenForm(FormClass: TFormClass; var fm; AOwner:TComponent);
var
i: integer;
Child:TForm;
begin
for i := 0 to Screen.FormCount -1 do
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_SHOWNA);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
TForm(fm):=FormClass.Create(AOwner);
TForm(fm).Show;
end;
var
i: integer;
Child:TForm;
begin
for i := 0 to Screen.FormCount -1 do
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_SHOWNA);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
TForm(fm):=FormClass.Create(AOwner);
TForm(fm).Show;
end;
解决方案 »
- 有谁使用DELPHI开发过发传真[网络传真]
- 如何通过不同的代理 访问同一地址
- 请问用xmldocument,如何删除xml的节点呢?代码如下
- *.db能不能远程访问(互联网/局域网)?如何实现?
- 如何将查询结果放到一个临时表中去(delphi+sqlserver2000)?
- 我的[Page#]/[TotalPages]在有些报表上有数字打出,但几张报表上没有数字(注:不是显示为0),完全为空。?????????????
- 一个讨厌的问题!!!!!!!!!!!!!!
- Integer => Word ?
- 三层问题 提示'DLL 出错'
- 急!急!急!急!急!急!急!有谁在广域网上使用过COM+或MTS的!请赐教
- 能不能给一个制作简单的COM的范例
- 我想动态创建一个Tbarseries,怎么建?十分着急,在线等待!!!!
这句有问题吧?var fm; AOwner:TComponent
这是一个“调用窗体”的函数!!!
第一个for循环是从屏幕上所有窗体中找你所要调用的子窗体。
if Screen.Forms[i].ClassType=FormClass then这句的意思是:
判断屏幕中某个窗体是不是你所调用的窗体?
if (not Child.Visible) then Child.Visible:=True;//应该知道吧
Child.BringToFront;
Child.Setfocus;
如果是要调用的窗体,则置为前面,并设置焦点.
exit;
如果在屏幕程序中找到了,则退出显示窗体的函数!!!!
如果没有找到的话,则要执行以下语句了:
TForm(fm):=FormClass.Create(AOwner);
TForm(fm).Show;
就把要调用的窗体,创建出来,并显示
没有问题:
无类型引用参数
类似c中的void *
没有问题,
但运行速度比var fm:Tfrom;慢