高手请帮忙看看这个MDI窗口问题! ( 积分: 50 )

  • 主题发起人 主题发起人 gxf1681
  • 开始时间 开始时间
G

gxf1681

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在MDI窗口中判断子窗体是否已经创建,如果已经创建只需要把子窗体显示出来就行,如果没有被创建,就需要创建,再显示出来!
 
手上没相关项目吧,这个在一般项目中,都有基本代码。
 
delphi中的MDI确实有问题。不能触发close事件。<br>一般处理的方法是:<br>action:=cafree;<br>MDIFORM.hide.<br><br>动态创建的话:以下是我以前在做项目的时候,里面的一小段代码,fzp是子窗体。<br><br>&nbsp;&nbsp;if&nbsp;fzp=nil&nbsp;then&nbsp;fzp:=Tfzp.Create(application);<br>&nbsp;&nbsp;fzp.Show;<br><br>关闭:<br>procedure&nbsp;Tfdhd.FormClose(Sender:&nbsp;TObject;&nbsp;var&nbsp;Action:&nbsp;TCloseAction);<br>begin<br>&nbsp;&nbsp;Action&nbsp;:=&nbsp;caFree;<br>&nbsp;&nbsp;fdhd:=nil;<br>end;
 
谢谢,我再问一下,如果把子窗体Show出来,怎样做到,在子窗体显示出来的时候,焦点落在母窗体,而子窗体不也显示!
 
你可以主窗体里设置一些全局变量.用来计载子窗体打开的名称,在子窗体的CREATE事件里写.把窗体名称赋闲于变量.只要判断变量就可以判断子窗体是否打开了.如果关闭了子窗体则把变量清空.
 
谢谢各位帮忙,可能我前面表达的问题有些不大准确,抱歉,<br>如果把子窗体显示出来,焦点却要落在母窗体的某个TEdit框,而不需要落在子窗体中,子窗体只是显示出来,不能隐藏!
 
fzp.Show改为fzp.showModal太太基础的问题。。找本入门书看哈。。。
 
楼上的误解了吧,像你所说的这样,会发贴问高手吗?是不是你理解出问题了呢!!
 
后退
顶部