?? tloginformunit.~pas
字號(hào):
unit TloginFormUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls;
type
TLoginForm = class(TForm)
btok: TBitBtn;
btno: TBitBtn;
password: TEdit;
Label2: TLabel;
Label1: TLabel;
user: TDBLookupComboBox;
Panel1: TPanel;
Panel2: TPanel;
procedure FormShow(Sender: TObject);
procedure btokClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure btnoClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
check: boolean; //檢查密碼輸入是否正確
Ftimes: integer; //密碼輸入次數(shù)計(jì)數(shù)
{ Private declarations }
public
procedure iniapp(qx: int64); //項(xiàng)目初始化
{ Public declarations }
end;
var
LoginForm: TLoginForm;
implementation
uses Udm, Umain;
{$R *.dfm}
procedure TLoginForm.FormShow(Sender: TObject);
begin
Ftimes := 0; //記錄密碼輸入次數(shù)為0
check := false;
User.SetFocus; //用戶(hù)名選擇獲得焦點(diǎn)
PassWord.text := ''; //清空密碼輸入
user.DropDown; //為了方便用戶(hù)選擇,打開(kāi)下拉列表
end;
procedure TLoginForm.btokClick(Sender: TObject);
var mm: string; qx: int64;
begin
Ftimes := Ftimes + 1; //每單擊一次‘確定’按鈕,密碼輸入次數(shù)加1
mm := trim(adodm.Tuser.Fieldbyname('密碼').AsString); //取得該用戶(hù)在數(shù)據(jù)庫(kù)中的密碼
qx := adodm.Tuser.FieldValues['用戶(hù)權(quán)限']; //取得該用戶(hù)在數(shù)據(jù)庫(kù)中的操作權(quán)限
if (mm = trim(PassWord.text)) and (qx > 1000000000) then
begin
MainForm.auser.name := adodm.Tuser.FieldValues['操作員'];
MainForm.auser.qx := StrToint64(adodm.Tuser.FieldValues['用戶(hù)權(quán)限']);
MainForm.auser.id := StrToInt64(adodm.Tuser.fieldvalues['用戶(hù)編號(hào)']);
//記錄用戶(hù)的登陸時(shí)間和用戶(hù)名
adodm.toper.Open;
adodm.toper.append;
adodm.toper.FieldByName('登錄時(shí)間').AsDateTime := now;
adodm.toper.FieldByName('用戶(hù)編號(hào)').AsVariant := MainForm.auser.id;
adodm.toper.Post;
adodm.toper.Last;
MainForm.operid := adodm.toper.FieldByName('操作員編號(hào)').AsVariant;
iniapp(qx); //初始化主窗體屬性
end
else
if Ftimes < 3 then
if mm <> trim(PassWord.Text) then
begin
showmessage('密碼不對(duì),請(qǐng)重新錄入!');
PassWord.SetFocus;
exit;
end else
begin
showmessage('你已經(jīng)輸入三次錯(cuò)誤密碼,請(qǐng)與管理員聯(lián)系!');
User.SetFocus;
exit;
end
else
begin
showmessage('對(duì)不起,你沒(méi)有通過(guò)口令認(rèn)證!');
application.Terminate;
end;
end;
procedure TLoginForm.iniapp(qx: int64);
//項(xiàng)目初始化,對(duì)于不同的操作人員,賦予不同的操作權(quán)限
var i, j: integer;
begin
Application.CreateForm(TmainForm, MainForm);
for i := 0 to MainForm.MainMenu1.items.Count - 1 do
for j := 0 to MainForm.MainMenu1.Items[i].Count - 1 do
MainForm.MainMenu1.items[i].Items[j].Enabled := false;
MainForm.TSGLBT.Enabled := False;
MainForm.BXGLBT.Enabled := False;
MainForm.JFDJBT.Enabled := False;
MainForm.ZHZLBT.Enabled := False;
MainForm.BACKDATABT.Enabled := False;
//使所有的菜單為不可用
qx := qx xor 1234567890;
qx := qx shr 10;
for i := 0 to 6 do //共有7 種權(quán)限
if ((1 shl i) and qx) <> 0 then
case i of
0: begin
MainForm.TSGL.Enabled := True;
MainForm.BXGL.Enabled := True;
MainForm.TSGLBT.Enabled := True;
MainForm.BXGLBT.Enabled := True;
end;
1: begin
MainForm.TCGL.Enabled := True;
MainForm.WYJFGL.Enabled := True;
MainForm.YFKGL.Enabled := True;
MainForm.JFDJBT.Enabled := True;
MainForm.n1.Enabled := True;
end;
2: begin
MainForm.TSBB.Enabled := True;
MainForm.BXBB.Enabled := True;
end;
3: begin
MainForm.SFTJBB.Enabled := True;
MainForm.SFGL.Enabled := True;
end;
4: begin
MainForm.FXZLLR.Enabled := True;
MainForm.ZHZLLR.Enabled := True;
MainForm.TCCCWLR.Enabled := True;
end;
5: begin
MainForm.ZHZLBT.Enabled := True;
end;
6: begin
MainForm.UserManage.Enabled := True;
MainForm.BACKDATA.Enabled := True;
MainForm.BACKDATABT.Enabled := True;
end;
end;
MainForm.CHANGEPASSWORD.Enabled := true;
MainForm.ReLogin.Enabled := true;
MainForm.ExitMenu.Enabled := true;
MainForm.SystemHelp.Enabled := true;
MainForm.About.Enabled := true;
check := true;
MainForm.StatusBar1.Panels[1].Text := '操作員:' + MainForm.auser.name;
MainForm.StatusBar1.Panels[2].Text := '歡迎使用';
LoginForm.Free;
MainForm.ShowModal;
end;
procedure TLoginForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if not check then
btno.Click
else canclose := true;
end;
procedure TLoginForm.btnoClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TLoginForm.FormCreate(Sender: TObject);
begin
//Application.CreateForm(TmainForm,MainForm);
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -