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