我在客户端建立了一个MDI(FormMain和FormChild)的程序,想用登录窗口(formL)进行用户身份确认,但我在工程选项中把登录窗口设为启动的话FormChild窗口就不能建立,把FormMain窗口设为启动的话,FormL窗口就没法建立。为什么?
——————————————————————————我应该怎么做呢?(我已试过show,showmodal语句了)。

解决方案 »

  1.   

    你一定要用FormMain作启动窗体
    在它的ONCREATe事件中手工创建
    FormL :=TFormL。Create(Application);
    FormL。showmodal;
    然后在FormL的登陆事件中如果密码错误则用Application。terminate退出程序
      

  2.   

    这个问题我也碰到过,我也不知道这么解决。
    我当时是把FormMDI作为mainforn,
    在FormMDI的onshow事件中用showmodal显示登陆窗体。
    你可以试着在看看。
      

  3.   

    to ljmanage(过客) 我先试试!
      

  4.   

    to mei81111(二少爷) 你的方法我试了,不行。
      

  5.   

    to ljmanage(过客) 你的方法可以,但是如果成功什么运行FormMain窗口呢?
    FormL窗口又怎么办呢?
      

  6.   

    //========== Project1.dpr 项目文件  ================//
    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {FormLogin},
      Unit2 in 'Unit2.pas' {FormMDI},
      Unit3 in 'Unit3.pas' {FormChild};{$R *.res}begin
      Application.Initialize;
      if doLogin then   //调用登陆函数,在Unit1(formLogin)中
      begin
        Application.CreateForm(TFormMDI, FormMDI);
        Application.CreateForm(TFormChild, FormChild);
        Application.Run;
      end else
      begin
        application.terminate;
      end;
    end.
    //=============  下面是登陆界面  ===========//
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TFormLogin = class(TForm)
        btOK: TButton;
        btQuit: TButton;
        procedure btOKClick(Sender: TObject);
        procedure btQuitClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      FormLogin: TFormLogin;
      function doLogIn:boolean;implementation{$R *.dfm}
    function doLogIn:boolean;
    begin
      with TFormLogin.create(application) do
      begin
        if ShowModal = mrok then
           result := true
        else
           result := false;
        free;
      end;
    end;  procedure TFormLogin.btOKClick(Sender: TObject);
    begin
      if 条件正确 then 
        modalresult := mrok
      else
        ModalResult := mrCancel;
    end;
    procedure TFormLogin.btQuitClick(Sender: TObject);
    begin
      ModalResult := mrCancel;
    end;end.
      

  7.   

    to LuckyJan(小虾无招)你的方法解决了显示窗体的问题,可是我登录时需要使用的本地数据模块却不能查询了,
    这又怎么办呢?我好苦恼啊!(自己好笨)!!!