我现在做了一个主窗体--名为mainform是MDIFORM,下面有很我MDICHILD
可是登录窗体不知怎么做才好,如果重另做一个的话,用winexec来呢又
得不到登录用户的记录,真是难哪,请高手们救救我。

解决方案 »

  1.   

    有很多的方法的,可以用winexec发送消息给MDIFORM
    也可以将登陆窗口放在工程文件中
      

  2.   

    没有关系亚,登录窗体可以做成sdi的窗体,启动得时候先启动登录窗体
      

  3.   

    如sailer_shi所说,可以先启动登录窗体:
    修改你的dpr文件
    var
      loginForm :TloginForm;
    begin
      Application.Initialize;
      loginForm := TloginForm.Create(Application);
      try
        if loginForm.ShowModal = mrok then //在这里登录,如果登录成功,返回mrok
           Application.CreateForm(TMainForm, MainForm) //在这里打开需要的窗体
        else Application.Terminate;  //如果登录失败,退出程序
      finally
        LoginForm.Free;
      end;  Application.Runend.
      

  4.   

    TO BLUZ
    还有一个问题,登录之后的主窗体如果不关掉LOGINFORM,mdichildform 就不能
    出现,不知如何关掉loginform,
      

  5.   

    登录窗体最好还是做成dll,这样以后就再也不用写了。调用一下就可以。不过安全性很难把握。
      

  6.   

    没有看明白你的问题,不知道和我遇到的是否一样,暂时解决,不是很好。http://expert.csdn.net/Expert/topic/2353/2353706.xml?temp=.4357111
      

  7.   

    方法一:改工程文件,用frmLogin:=TfrmLogin.create(Application)建立Login窗体。
           应该如下:
           ...
           frmLogin:=TfrmLogin.create(Application);
           if frmLogin.showmodal=mrok then Application.Createform(MainForm);
           frmLogin.free;
           ...方法二:在MainForm的Create事件中建立LoginForm;
           frmLogin:=TfrmLogin.create(Self);
           frmLogin.showmodal;[不建义]
      

  8.   

    program Project1;uses
      Forms, controls,
      MainForm in 'MainForm.pas' {Form1},
      loginform in 'loginform.pas' {Form2};{$R *.res}var
      loginfrm :Tform2;
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      loginfrm := tform2.Create(application);
      try
        if loginfrm.ShowModal = mrCancel then
          Application.terminate;
      finally
        loginfrm.free;
      end;
      Application.Run;
    end.unit loginform;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm2 = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
    begin
      if edit1.Text = edit2.text then
         ModalResult := mrok
      else
         ModalResult := mrcancel;
    end;end.如果还不明白把你的mail告诉我,我把例子发过去
      

  9.   

    你放在你的pro文件中;
    楼上的错了,应该这样;var
      loginfrm :Tform2;
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);// ->这个是先创建数据模块;
      loginfrm := tform2.Create(application);
      try
        if loginfrm.ShowModal = mrCancel then
          Application.terminate;
      finally
        loginfrm.free;
      end;
      Application.CreateForm(TForm1, Form1);// 而这个才是你的主窗体
      Application.Run;
    end.