我的程序在啟動登彔窗口輸入用戶名和密碼縣主窗體后,怎楊把登彔窗體關閉?

解决方案 »

  1.   

    你的登彔窗體是不是主窗体?
    不是的话就frmLogin.Close;
    是的话就frmLogin.Visiable:=false;
      

  2.   

    procedure TFrmLogin.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      CanClose:=True;
    end;procedure TFrmLogin.FormDestroy(Sender: TObject);
    begin
      FrmLogin:=nil;
    end;procedure TFrmLogin.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action:=caFree;
    end;
      

  3.   

    你不要将登录窗体设为主窗体,而是将你的操作主界面设为主窗体.然后你可以在工程文件中或在主窗体的oncreate事件中创建登录窗体,如果登录失败则退出系统.建议在工程文件中加入,你可以这样写:
    ....
    begin
      Application.Initialize;
      //因为你登录时需要验证密码,所以先创建有数据连接的数据模板
      Application.createform(Tdatamodule, datamodule);
      //在这里加上登录窗体
      frmlogin := TfrmLogin.create(nil);
      try
        if frmlogin.showmodal <> mrOk then
          exit;
        //在这里加上其他窗体的创建过程.
      finally
        frmlogin.free;
      end;
      
      
    end;
      

  4.   

    在工程文件的begin...end.之间啊!
    begin
      Application.Initialize;
      Application.Title := '应用程序标题';
      FrmUserLogin:=TFrmUserLogin.Create(nil);
      FrmUserLogin:=TFrmUserLogin.Create(nil);//密码验证窗体  
      try
        FrmUserlogin.ShowModal ;
        if FrmUserlogin.LoginValue = True then//验证成功
        begin
          Application.CreateForm(TFrmMainUnit, FrmMainUnit);
          Application.Run;
        end;
      finally
        FrmUserlogin.Free;
      end;
    end.
      

  5.   

    请参照
    http://www.csdn.net/expert/topic/630/630809.xml?temp=.5684931
      

  6.   

    unit dl_unit;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, ComCtrls, jpeg, ExtCtrls;type
      Tdlfrm = class(TForm)
        Label4: TLabel;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Image1: TImage;
        Label6: TLabel;
        Label8: TLabel;
        Edit1: TEdit;
        BitBtn2: TBitBtn;
        BitBtn3: TBitBtn;
        ComboBox1: TComboBox;
        Bevel1: TBevel;
        procedure FormCreate(Sender: TObject);
        procedure BitBtn3Click(Sender: TObject);
        procedure BitBtn2Click(Sender: TObject);
        procedure Edit1KeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure ComboBox1Change(Sender: TObject);
      private
        { Private declarations }
      public
        dl:boolean;
        mzh:string;
        { Public declarations }
      end;var
      dlfrm: Tdlfrm;implementation
       uses data;
    {$R *.dfm}procedure Tdlfrm.FormCreate(Sender: TObject);
    var
      i:integer;
    begin
      dl:=false;
      mzh:='';
      combobox1.Clear;
      with datamodule1.pd_Query do
      begin
         close;
         sql.Clear;
         sql.Add('select * from tsg_czywh');
         open;
         first;
         if recordcount<>0 then
         begin
            for i:=0 to recordcount-1 do
            begin
               combobox1.Items.Add(fieldbyname('czywh_name').asstring);
               next;
            end;
         end;
      end;
    end;procedure Tdlfrm.BitBtn3Click(Sender: TObject);
    begin
       close;
    end;procedure Tdlfrm.BitBtn2Click(Sender: TObject);
    begin
      if combobox1.Text='' then
      begin
         application.MessageBox('请选择用户!','提示',mb_ok+mb_iconinformation);
         exit;
      end;
      with datamodule1.pd_Query do   //判断密码是否正确
      begin
          close;
          sql.Clear;
          sql.Add('select * from tsg_czywh where');
          sql.Add('(czywh_name=:p_name)'+'and'+'(czywh_mm=:p_mm)');
          parambyname('p_name').asstring:=combobox1.Text;
          parambyname('p_mm').asstring:=mzh;
          open;
          if recordcount<>0 then  //正确
          begin
             dl:=true;
             sqm:=fieldbyname('czywh_dw').asstring;
             czsj:=datetimetostr(now);
             user:=combobox1.text;
             qx1:=fieldbyname('czywh_ztyw').asinteger;
             qx2:=fieldbyname('czywh_txm').asinteger;
             qx3:=fieldbyname('czywh_hygl').asinteger;
             qx4:=fieldbyname('czywh_qtgl').asinteger;
             qx5:=fieldbyname('czywh_zl').asinteger;
             qx6:=fieldbyname('czywh_sw').asinteger;
             qx7:=fieldbyname('czywh_yy').asinteger;
             qx8:=fieldbyname('czywh_lsk').asinteger;
             qx9:=fieldbyname('czywh_yls').asinteger;
             dlfrm.Close;
          end
          else                   //错误
          begin
             application.MessageBox('密码错误!','提示',mb_ok+mb_iconerror);
             edit1.Text:='';
             edit1.SetFocus;
             mzh:='';
             exit;
          end;
      end;
    end;procedure Tdlfrm.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
       mzh:=mzh+inttostr(key);
    end;procedure Tdlfrm.ComboBox1Change(Sender: TObject);
    begin
       edit1.SetFocus;
    end;end.
      

  7.   

    program tsg;uses
      Forms,
      main_unit in 'main_unit.pas' {mainfrm},
      data in 'data.pas' {DataModule1: TDataModule},
      sqwh_unit in 'sqwh_unit.pas' {sqwhfrm},
      bmwh_unit in 'bmwh_unit.pas' {bmwhfrm},
      ........................
    {$R *.res}begin
      Application.Initialize;
      DataModule1:=TDataModule1.Create(application);
      Application.Title := '图书管理系统';
      dlfrm:=Tdlfrm.Create(application);
      dlfrm.Showmodal;
      if dlfrm.dl=false then
      begin
        application.Terminate;
      end;
      Application.CreateForm(Tmainfrm, mainfrm);
      Application.CreateForm(Tvcdzpfrm, vcdzpfrm);
      Application.CreateForm(Tqktxmfrm, qktxmfrm);
      Application.CreateForm(Ttstxmdyfrm, tstxmdyfrm);
      mainfrm.StatusBar1.Panels[0].Text:='操作员:'+user;
      mainfrm.StatusBar1.Panels[1].Text:='操作日期:'+czsj;
      Application.Run;
    end.