主程序 begin Application.Initialize; Application.CreateForm(TFrmMain, FrmMain); Application.CreateForm(TDataMMain, DataMMain); Application.CreateForm(TFrmLLogin, FrmLLogin); if FrmLLogin.Enter <> 1 then begin Application.ShowMainForm := False; Application.Terminate; end; Application.Run; end;登陆界面程序 {----------------------------------------------------------------------- -----------------------------------------------------------------------} function TFrmLLogin.Enter : integer; Var Buffer: PChar; i: Cardinal; s: String; Year,Month,Day: Word; begin FRetryEnter :=0; ADOSUserWIn.Connection := DataMMain.ADONMain; ADOQAccountset.Connection := DataMMain.ADONMain; Buffer := nil; i := 64; try with DataMMain.ADOSMainUser do begin CommandText := Format(SqlAccountuser,[G_sUserBranchCode,inttostr(G_iSelfAccount),' AND (Disable_I=0)']); Active := True; end; EditCode.Text := ''; EditUserName.text := ''; EditPassword.Text := ''; ActiveControl := EditCode; Result := ShowModal; finally DataMMain.ADOSMainUser.Active := False; ADOQAccountset.Active := False; ADOQAccountset.Connection := nil; end; end; {******************************************************************************* *******************************************************************************} procedure TFrmLLogin.FormKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin Key:=#0; SelectNext(Activecontrol, True, True); end; end; {******************************************************************************* *******************************************************************************} procedure TFrmLLogin.EditCodeExit(Sender: TObject); var s: string; begin s := trim(EditCode.text); s := StringOfChar('0', 6-length(s))+s; EditCode.Text := s; if( DataMMain.ADOSMainUser.Locate('UserCode_C', s , [])) then EditUserName.text := DataMMain.ADOSMainUser.FieldValues['UserName_C'] else begin MessageBoxStop1('User Code Error!'); EditCode.SetFocus; end; end; {******************************************************************************* *******************************************************************************} procedure TFrmLLogin.ButtonOKClick(Sender: TObject); var s: string; iRow,iCol: Integer; begin if Trim(EditCode.Text)<>'' then begin s := Trim(EditCode.Text); s := StringOfChar('0', 6-length(s))+s; with DataMMain do begin if( ADOSMainUser.Locate('UserCode_C', Copy(s,1,6), [])) then begin EditUserName.text := ADOSMainUser.FieldValues['UserName_C']; IF (trim(ADOSMainUser.FieldValues['PassWord_C']) = trim(EditPassword.text)) then begin G_sUserCode := s; G_sUserName := EditUserName.text; G_sUserPassword := trim(EditPassword.text); ModalResult:=IDOK; end else begin INC(FRetryEnter); if FRetryEnter<=3 then begin MessageBoxStop1('Password Error!'); EditPassWord.SetFocus; end else begin if FRetryEnter>3 then begin MessageBoxStop1(Format(SNoPopedom,['Login'])); ModalResult:=IDCANCEL; end; end; end; end; end; end; end; procedure TFrmLLogin.EditCodeChange(Sender: TObject); begin EditUserName.text := ''; end;procedure TFrmLLogin.SpdBtnCancelClick(Sender: TObject); begin ModalResult := ID_CANCEL; end;procedure TFrmLLogin.ButtonCancelClick(Sender: TObject); begin Application.Terminate; end;
给你大概思路:
代码关键在“确定”按钮上
用户按下“确定”按钮后,将密码输入框即TEdit的内容与后台数据库用户表中的密码字段进行比较,相同则关闭登录窗口,启动主界面,否则报信息“密码错误”。
begin
Application.Initialize;
Application.CreateForm(TFrmMain, FrmMain);
Application.CreateForm(TDataMMain, DataMMain);
Application.CreateForm(TFrmLLogin, FrmLLogin);
if FrmLLogin.Enter <> 1 then
begin
Application.ShowMainForm := False;
Application.Terminate;
end;
Application.Run;
end;登陆界面程序
{-----------------------------------------------------------------------
-----------------------------------------------------------------------}
function TFrmLLogin.Enter : integer;
Var
Buffer: PChar;
i: Cardinal;
s: String;
Year,Month,Day: Word;
begin
FRetryEnter :=0;
ADOSUserWIn.Connection := DataMMain.ADONMain;
ADOQAccountset.Connection := DataMMain.ADONMain;
Buffer := nil;
i := 64;
try
with DataMMain.ADOSMainUser do
begin
CommandText := Format(SqlAccountuser,[G_sUserBranchCode,inttostr(G_iSelfAccount),' AND (Disable_I=0)']);
Active := True;
end;
EditCode.Text := '';
EditUserName.text := '';
EditPassword.Text := '';
ActiveControl := EditCode;
Result := ShowModal;
finally
DataMMain.ADOSMainUser.Active := False;
ADOQAccountset.Active := False;
ADOQAccountset.Connection := nil;
end;
end;
{*******************************************************************************
*******************************************************************************}
procedure TFrmLLogin.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
Key:=#0;
SelectNext(Activecontrol, True, True);
end;
end;
{*******************************************************************************
*******************************************************************************}
procedure TFrmLLogin.EditCodeExit(Sender: TObject);
var
s: string;
begin
s := trim(EditCode.text);
s := StringOfChar('0', 6-length(s))+s;
EditCode.Text := s;
if( DataMMain.ADOSMainUser.Locate('UserCode_C', s , [])) then
EditUserName.text := DataMMain.ADOSMainUser.FieldValues['UserName_C']
else begin
MessageBoxStop1('User Code Error!');
EditCode.SetFocus;
end;
end;
{*******************************************************************************
*******************************************************************************}
procedure TFrmLLogin.ButtonOKClick(Sender: TObject);
var
s: string;
iRow,iCol: Integer;
begin
if Trim(EditCode.Text)<>'' then
begin
s := Trim(EditCode.Text);
s := StringOfChar('0', 6-length(s))+s;
with DataMMain do
begin
if( ADOSMainUser.Locate('UserCode_C', Copy(s,1,6), [])) then
begin
EditUserName.text := ADOSMainUser.FieldValues['UserName_C'];
IF (trim(ADOSMainUser.FieldValues['PassWord_C']) = trim(EditPassword.text)) then
begin
G_sUserCode := s;
G_sUserName := EditUserName.text;
G_sUserPassword := trim(EditPassword.text);
ModalResult:=IDOK;
end else
begin
INC(FRetryEnter);
if FRetryEnter<=3 then
begin
MessageBoxStop1('Password Error!');
EditPassWord.SetFocus;
end else
begin
if FRetryEnter>3 then
begin
MessageBoxStop1(Format(SNoPopedom,['Login']));
ModalResult:=IDCANCEL;
end;
end;
end;
end;
end;
end;
end;
procedure TFrmLLogin.EditCodeChange(Sender: TObject);
begin
EditUserName.text := '';
end;procedure TFrmLLogin.SpdBtnCancelClick(Sender: TObject);
begin
ModalResult := ID_CANCEL;
end;procedure TFrmLLogin.ButtonCancelClick(Sender: TObject);
begin
Application.Terminate;
end;