?? logo.pas
字號(hào):
unit LOGO;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, FRMBASSDIALOGS, ComCtrls, MenuBar, ToolWin, ExtCtrls,registry,
DsFancyButton, StdCtrls, DB, DBTables,myself, TFlatEditUnit;
type
TFrm_Logo = class(TFrm_bassDialogs)
Image1: TImage;
Label2: TLabel;
Label1: TLabel;
Query_pass: TQuery;
Label3: TLabel;
E_ID: TFlatEdit;
E_Password: TFlatEdit;
L_name: TLabel;
procedure CB_USERNAMEChange(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure OKBtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure E_PasswordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure E_IDChange(Sender: TObject);
procedure E_IDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
B_halt:bool;
I_logo:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Logo: TFrm_Logo;
implementation
uses FRMMAIN, FACE, FRMMESSAGE;
{$R *.dfm}
procedure TFrm_Logo.CB_USERNAMEChange(Sender: TObject);
begin
inherited;
E_password.SetFocus ;
end;
procedure TFrm_Logo.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
S_temppass :string;
begin
inherited;
if b_halt then
begin
query_pass.Close;
query_pass.Free;
application.Terminate ;
exit;
end
else b_halt:=true;
S_temppass:=E_password.text;
USERNAME:=L_name.Caption;
if (E_id.Text='') or (L_name.Caption='未知用戶') then //用戶名為空
begin
messagedlg(Errormsg0002+'0002+0003',mterror,[mbok],0);
E_id.SetFocus ;
canclose:=false;
exit;
end //end if
else //用戶名非空
begin
with query_pass do
begin
first;
while not eof do //檢查用戶名與密碼
begin
if (USERNAME=fieldbyname('USERname').asstring) and
(S_tempPass=fieldbyname('keypass').asstring) then
begin
USERRIGHTSNAME:=fieldbyname('rightsname').AsString ;
USERRIGHTS:=fieldbyname('rights').AsString ;
break;
end;
next;
end; //end while
if eof then //用戶名與密碼不符
begin
inc(I_logo);
if I_logo>=3 then
begin
messagedlg('您已嘗試超過 3 次,系統(tǒng)將停止運(yùn)行!',mterror,[mbok],0);
query_pass.Close;
query_pass.Free;
application.Terminate ;
end
else
begin
messagedlg('用戶名與密碼不符,請(qǐng)檢查后重新輸入。'+#13+#13
+'你還有 '+inttostr(3-I_logo)+' 次機(jī)會(huì)!',mterror,[mbok],0);
e_password.SetFocus ;
e_password.SelectAll ;
canclose:=false;
exit;
end;
end; //end if
end; //end with
end; //end else if;
frm_main.StatusBar_main.Panels.Items[3].Text:='操作員:【'+USERNAME+'】 權(quán)限:〖'+USERRIGHTSNAME+'〗';
frm_message.Show ;
frm_message.Memo_message.Lines.Append(datetimetostr(now)+':'+USERNAME+' - 登錄');
query_pass.Free ;
canclose:=true;
end;
procedure TFrm_Logo.OKBtnClick(Sender: TObject);
begin
inherited;
b_halt:=false;
self.Close ;
end;
procedure TFrm_Logo.FormCreate(Sender: TObject);
var
reg:TRegistry;
begin
inherited;
self.Caption :=application.Title + ' - ';
self.Caption :=self.Caption +'用戶登錄';
I_logo:=0;
query_pass.DatabaseName :=HWSHOPDATA;
B_halt:=true;
reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
with query_pass do
begin
sql.text:='SELECT Systemuser.ID, Systemuser.NAME USERNAME, Systemuser.KEYPASS,'
+' Systemrights.NAME RIGHTSNAME, Systemrights.RIGHTS RIGHTS FROM Systemuser '
+' INNER JOIN Systemrights ON (Systemuser.RIGHTS = Systemrights.NAME)'
+' ORDER BY Systemuser.ID';
try
open;
except
if frm_face.Showing then
frm_face.Destroy ;
messagedlg('數(shù)據(jù)庫(kù)打開錯(cuò)誤,可能指定的系統(tǒng)數(shù)據(jù)庫(kù)文件不存在!'+#13+#13
+'系統(tǒng)將終止運(yùn)行,請(qǐng)重新嘗試打開本程序。'
+#13+#13+'如果依然出現(xiàn)本信息,請(qǐng)與程序供應(yīng)商聯(lián)系。',mtError,[mbok],0);
close;
try
reg.DeleteKey(S_RegTree);
finally
reg.CloseKey ;
reg.free;
end;
application.Terminate;
end;
end;
end;
procedure TFrm_Logo.E_PasswordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if key=27 then
begin
cancelbtnclick(sender);
exit;
end;
if key=13 then okbtn.OnClick(self);
end;
procedure TFrm_Logo.FormShow(Sender: TObject);
begin
inherited;
E_ID.SetFocus ;
end;
procedure TFrm_Logo.E_IDChange(Sender: TObject);
begin
inherited;
with query_pass do
begin
first;
while not eof do
begin
if E_id.Text =fieldbyname('ID').AsString then
begin
L_name.Caption :=fieldbyname('USERName').AsString ;
exit;
end
else
L_name.Caption :='未知用戶';
next;
end;
end;
end;
procedure TFrm_Logo.E_IDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if key=27 then
begin
cancelbtnclick(sender);
exit;
end;
if (key=13) or (key=40) then { 判斷是按執(zhí)行鍵}
Begin
key:=0;
perform(WM_NEXTDLGCTL,0,0);{移動(dòng)到下一個(gè)控件}
end;
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -