Form1是主窗体 Form2是子窗体。我想要在Form1中打开From2 代码是这样写的
function TForm1.FindForm(caption: string): bool;
var
i:integer;
begin
//result:=false;//防止出现函数返回值没有定义的警告
result:=true;//防止出现函数返回值没有定义的警告
for i:=0 to Form1.MDIChildCount do
begin
// 通过对窗体标题判断窗体是否存在
if Form1.MDIChildren[i].Caption=caption then
begin
//如果窗体已存在,则恢复窗体,并返回true
SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_RESTORE, 0);
mdichildren[i].Enabled:=true;
mdichildren[i].Show;
mdichildren[i].SetFocus;
result:=true;
break;
end
else
//如窗体不存在,则返回false,程序将创建窗体
result:=false;
end
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
Form2:TForm2;
begin
if FindForm('Form2')=false then
begin
Form2:=TForm1.Create(application);
Form2.Caption:='Form2';
end;
end;end.
为什么我调用不了?在Form1中不能调用Form2嘛?
function TForm1.FindForm(caption: string): bool;
var
i:integer;
begin
//result:=false;//防止出现函数返回值没有定义的警告
result:=true;//防止出现函数返回值没有定义的警告
for i:=0 to Form1.MDIChildCount do
begin
// 通过对窗体标题判断窗体是否存在
if Form1.MDIChildren[i].Caption=caption then
begin
//如果窗体已存在,则恢复窗体,并返回true
SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_RESTORE, 0);
mdichildren[i].Enabled:=true;
mdichildren[i].Show;
mdichildren[i].SetFocus;
result:=true;
break;
end
else
//如窗体不存在,则返回false,程序将创建窗体
result:=false;
end
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
Form2:TForm2;
begin
if FindForm('Form2')=false then
begin
Form2:=TForm1.Create(application);
Form2.Caption:='Form2';
end;
end;end.
为什么我调用不了?在Form1中不能调用Form2嘛?
解决方案 »
- dbexpress 连oracle游标的问题
- 有什么好用的delphi的代码生成器?
- 被蜜蜂叮了一下,手指肿得像jj,求安慰
- delphi怎么读pdf?
- Delphi中调用SelectDirectory弹出的浏览文件夹的对话框为何总是在右下角
- 多线程通信问题,同delphi的ipcdemos相关!!
- 原子函数的使用
- 帮帮忙!!quickreport问题??
- Ado could not find the specified provider
- 我是delphi的初学者,该从哪里入手
- delphi7下开发的小工具到XE2下不能编译了,提供源码,帮忙看一下。
- 这看起来很简单的问题难倒多少高手??? windows.SetParent(form2.Handle, form1.Handle);
begin
if not AsSigned(Form2) Then
begin
Form2:=TForm2.Create(application);
Form2.Caption:='Form2';
end
else
Form2.BringToFront;
end;另:
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2:=nil;
end;
Var
Form2:TForm2;
Form2:=TForm1.Create(application);->>Form2:=TForm2.Create(application);