1.怎样Disable窗体上关闭按钮!
 2.我要实现登陆后出现Logo窗体,然后等主窗体创建成功后才释放: 
   我的主窗体是一个MDIForm,里面有一个MDIChild,我在主窗体OnCreate时把登陆窗口(Login)ShowModal,当用户输入用户名和密码登陆成功后就把Logo窗体显示:
   if (登陆成功) then
   begin
     Close;
     Logo := TLogo.create(Application);
     Logo.show;
     Logo.update;
     Child :=TChild.Create(Application);//创建MDIChild
     ....
     Logo.Free;
   end;
   但是在运行的时候出错,提示目前没有MDIForm;
   请问各位大侠,这个问题应该怎样解决,你们又是怎样实现的?

解决方案 »

  1.   

    把这段code挪到主窗体德onshow事件里。
      

  2.   

    1、可以不disable窗体上的关闭按钮,可以屏蔽掉对应的消息
    private
      procedure WMSYSCOMMAND(var Msg: TMessge); message WM_SYSCOMMAND;
    ..
    implementationprocedure TForm1.WMSYSCOMMAND(var Msg: TMessge);
    begin
      if Msg.WParam = SC_Close then
        sleep(1)//这样用户点击关闭按钮以后就几乎没什么反应了(除非你能判断Application在sleep  ^_^)
      else
        Inherited;
    end;
      

  3.   

    几点意见:1、登陆功能可以写在dpr中,在主窗体创建之前。这样一来就算取消登陆后,主窗体也不会一闪而过。
    2、如果需要一个固定的MDIChild,那么可以在Project属性中把你的子窗体设置成自动创建。
    3、OnCreate发生在构造函数中,其实这时候窗体还不算创建完成。对你的问题的简单处理如楼上的楼上所说。
    4、屏蔽“关闭”按钮有很多方法。最直接的把Form的BorderIcons设置一下不就行了。