帮我建立一个函数!(10分)

  • 主题发起人 主题发起人 snappy
  • 开始时间 开始时间
S

snappy

Unregistered / Unconfirmed
GUEST, unregistred user!
关于:MID窗口的应用
要求:如果指定子窗口没有建立则建立,如果已建立则将其激活(置上)
 
在delphi 5 开发人员指南上有代码,现在不在家,没办法给你了
 
if not Assigned(Frm02) then
begin
Frm02 := TFrm02.Create(nil);
Frm02.show;
end
else
begin
Frm02.BringToFront;
Frm02.WindowState := wsMaximized;
end;
 
这是我自己建立的一个函数:

procedure OpenForm(FormClass: TComponentClass; var Reference);
var
i,n:integer;
myForm: TComponent;
begin
i:=0;
myForm := TComponent(FormClass.NewInstance);
for n:=0 to application.MainForm.MDIChildCount-1 do
begin
if Application.MainForm.MDIChildren[n].ClassName=myForm.ClassName then i:=i+1
end;
if i=0 then
begin
(myForm as TForm).Free;
Application.CreateForm(FormClass,Reference);
(myForm as TForm).Show;
end else
begin
(myForm as TForm).BringToFront;
end;
end;

可检测指定FORM是否已经建立,但却做不到将已建立的FORM激活及置上。
 
先写一函数判断窗体是否存在
function IFFORM(FORMNAME: string): BOOLEAN;
var
I: INTEGER;
begin
RESULT := FALSE;
for I := 0 to MDIChildCount - 1 do
if MDIChildren.NAME = FORMNAME then
begin
RESULT := TRUE;
BREAK
end;
end;

然后就可以用

if ifform(Fromname) then
Fromname.show
else
begin
Fromname := tFromname.Create(application);
Fromname.Show;
end;
 
多人接受答案了。
 
后退
顶部