delphi 设计两个 mdichild 子窗体的调用问题 Form1(mdichild) 上面的一个按钮,click 后,要出现 Form2(mdichild) ,可是 Form2 出现后, Form1 就不见了。 急,不知道该怎么弄才可以了。 请帮助!!!
解决方案 »
- 请教高人:winsock UDP Server 接收数据后调用消息处理类,却丢失客户端地址
- Clientdataset 问题????????/
- chartfx控件的onGetLegend事件是怎么用的???
- 200分求一抽奖程序!顶贴的也都有分
- 有没有dbtree 带 check 的控件
- 又一次放飞,并发、求MRP相关资料,谢谢
- 一个困扰我很久的问题,高分求解!!!!!!
- 比较难问题:在RichEdit中,如何在第N个字符显示一个ComboBox?
- 初学delphi,想做个透明tbutton,方法不对请教各位。
- 重金求购:<登陆奇兵>的正式版5400个搜索引擎数据库!
- 一个算法请教
- 用delphi+SQL SERVER的进
begin
F_Main.Z70Click(nil); //执行这句后,Form1 就不见了,只有 Form2 了
end;F_Main 是 MDI 父窗体 ,在父窗体中执行下面的代码没有问题。procedure TF_Main.Z70Click(Sender: TObject);
begin
if CreateForm(Form2)=false then
begin
Form2:=TForm2.Create(Application);
Form2.Show ;
end
else
Form2.Show ;
end;CreateForm 是个函数如下:
function TF_Main.CreateForm(CForm: TForm):boolean;
var
No:integer;
FormExist:boolean;
begin
FormExist:=False;
if (CForm=Nil) then //判断 CForm 是否为空
begin
CreateForm := False; //函数返回值赋 false
exit; // 退出本函数
end;
for No := 0 to Screen.FormCount - 1 do //判断窗体是否已经被建立起来
begin
if screen.Forms[No].ClassType =CForm.ClassType then //窗体判断存在
FormExist :=True; //窗体已经创建,用户没看到,可能是处于隐藏或最小化
end;
if FormExist =False then //窗体没有创建,返回 false
CreateForm :=False; if CForm.WindowState =wsMinimized then //如果窗体被创建,但 最小化
ShowWindow(CForm.Handle,SW_SHOWNORMAL) //显示窗体
else //窗体已经创建,但处于隐藏状态
ShowWindow(CForm.Handle,SW_SHOWNA);//显示窗体 if not CForm.Visible then
CForm.Visible :=True; CForm.BringToFront ; //当前窗口显示在最前面
CForm.SetFocus ; // 把光标的焦点转移到刚才创建或显示的窗口上
CreateForm :=True; //函数返回值赋 true;end;
begin
if screen.Forms[No].ClassType =CForm.ClassType then //窗体判断存在
FormExist :=True; //窗体已经创建,用户没看到,可能是处于隐藏或最小化
end; 只看到这段。
应该在mdichildcount里循环判断。
另外这句:
if screen.Forms[No].ClassType =CForm.ClassType then
窗1和窗2是不同的类型?
如果是同一类型,这样判断是不行的。
说出来,真是不好意思,是我把 Form2.formstyle 搞错了。不是 mdichild 。是 msnormal 。 散分,结贴