CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

为什么MDI窗口在被创建时会自动Show,怎样让其不自动弹出,谢谢!

楼主Hwin000(Hwin000)2004-09-04 20:38:15 在 Delphi / VCL组件开发及应用 提问

为什么MDI窗口在被创建时会自动Show,怎样让其不自动弹出,谢谢! 问题点数:20、回复次数:8Top

1 楼indexhome(蓝 海)回复于 2004-09-04 21:15:35 得分 0

把子FROM的VISION设置成FALSE  
   
  如果不需要子FROM,我建议还是动态创建吧Top

2 楼drift1981(delphi coder)回复于 2004-09-04 21:23:00 得分 2

mdi子窗体的visible不能设置为false,把子form从project--options中的autocreate去掉,去掉自动创建就可以了Top

3 楼jacky1011(大明)回复于 2004-09-04 21:36:57 得分 2

在'工程'-'选项'中,把Auto-Create   Form加到后面就可以了  
    调用时用:Form1:=TForm1.create(self);  
                              Form1.show;Top

4 楼SuanAddMiao(算苗)回复于 2004-09-04 21:59:57 得分 5

主窗体  
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls;  
   
  type  
      TForm1   =   class(TForm)  
          Button1:   TButton;  
          Button2:   TButton;  
          procedure   Button1Click(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  uses   Unit2;  
   
  {$R   *.dfm}  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      if   Form2<>nil   then  
      Form2.Close;  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
      if   Form2=nil   then  
      Form2:=TForm2.Create(nil);  
  end;  
   
  end.  
  子窗体  
  unit   Unit2;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs;  
   
  type  
      TForm2   =   class(TForm)  
          procedure   FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form2:   TForm2;  
   
  implementation  
   
  {$R   *.dfm}  
   
  procedure   TForm2.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
      Action   :=   caFree;  
      Form2:=nil;  
  end;  
   
  end.  
  Top

5 楼cowboy_blues()回复于 2004-09-04 22:12:38 得分 2

打开Option,选择project栏目,把你的mdi船体改成手动创建。Top

6 楼Hwin000(Hwin000)回复于 2004-09-04 23:12:22 得分 0

谢谢大家,可是我试了好象不行,我原先也是这样做的,还是会自动弹出,我自己也在纳闷!请朋友们再指教,谢谢,或者哪位朋友可不可以做一个示例工程,发于我邮箱,可不可以?Hwin000@tom.com   ,谢谢!Top

7 楼hsmserver(撒哈拉之雨的悲伤)回复于 2004-09-04 23:29:18 得分 3

program   project1;  
   
  uses  
      Forms,  
      Form1   in   'unit.pas'   {form1},  
      form2   in   'unit2.pas'   {form2};{$R   *.res}  
   
  begin  
      Application.Initialize;  
      Application.CreateForm(TForm1,   Form1);  
      Application.Run;  
  end.  
  显而易见  
  你从把FORM2去掉就可以了  
  然后SHOW的时候再创建。  
  begin  
  form2:=tform2.create(application);  
  form.show;  
  end;Top

8 楼SuanAddMiao(算苗)回复于 2004-09-05 13:20:21 得分 6

用API函数就行了.  
  隐:ShowWindow(Form2.Handle,SW_HIDE);  
  显:ShowWindow(Form2.Handle,SW_SHOW);  
  Top

相关问题

  • 如何动态创建弹出菜单
  • 请教各位高手,如何在原有的窗口中创建一个弹出窗口(不是MDI那种),并且在弹出窗口中还能读写主窗口的内容.
  • 如何创建MDI窗口?
  • 【【【【【【【【 怎样响应 动态创建 的 右键弹出菜单 】】】】】】】】】
  • 怎么创建一个弹出式菜单?
  • 无法创建web application 弹出对话框web access failed
  • 求一个创建弹出菜单的程序
  • window.createPopup() 创建的弹出窗体如何控制样式
  • 弹出的窗口不能动态创建父窗口的option
  • MDI程序新建时如何不弹出新建对话框?

关键词

  • application
  • tform
  • 谢谢
  • 弹出
  • mdi
  • 创建
  • 窗体
  • tobject
  • unit
  • 去掉

得分解答快速导航

  • 帖主:Hwin000
  • drift1981
  • jacky1011
  • SuanAddMiao
  • cowboy_blues
  • hsmserver
  • SuanAddMiao

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo