📄 passwordunit.pas
字号:
unit PassWordUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, RXCtrls, ExtCtrls, Buttons, DBCtrls, Mask, Db, DBTables,
ComCtrls, lmdclass, lmdformA;
type
TPassWord = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Bevel1: TBevel;
Edit1: TEdit;
DBC1: TComboBox;
Table1: TTable;
DataSource1: TDataSource;
Label4: TLabel;
UpDown1: TUpDown;
Label2: TLabel;
Edit4: TEdit;
UpDown2: TUpDown;
Label3: TLabel;
MaskEdit1: TMaskEdit;
Label1: TLabel;
Label5: TLabel;
SpeedButton9: TSpeedButton;
SpeedButton1: TSpeedButton;
LMDForm1: TLMDForm;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DBC1Exit(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure DBC1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
PassWord: TPassWord;
Fan,passd,iii:integer;
implementation
uses datatunit, MAINUNIT, CnDateUnit;
{$R *.DFM}
procedure TPassWord.BitBtn1Click(Sender: TObject);
//var st:string;
begin
with datat.Table3 do
begin
indexfieldnames:='user';
if findkey([password.dbc1.text]) then
begin
{ table1.open;
table1.Edit;
table1.Append;
table1.fieldbyname('dt').asstring:=datetimetostr(now);
table1.fieldbyname('zt').asstring:='开始登录';
table1.FieldByName('user').asstring:=dbc1.Text;
table1.post;
table1.edit;}
// gotokey;
if fieldbyname('pass').asstring=edit1.text then
begin
fan:=0;
// application.messagebox('恭喜,恭喜,你已经进入工资系统,请注意,为了提高数据的保密性能,请注意定期更改密码,以防泄漏.','提示框',mb_ok+mb_iconinformation);
// mainform.Caption:='中心医院在职工资系统 V5.01 '+'[操作员]---'+password.DBC1.Text+' 全程退出键[ESC]';
table1.Edit;
table1.Append;
table1.fieldbyname('dt').asstring:=datetimetostr(now);
table1.fieldbyname('zt').asstring:='登录成功';
table1.FieldByName('user').asstring:=dbc1.Text;
table1.post;
table1.edit;
password.close;
end
else
begin
iii:=iii+1;
if iii<3 then
begin
table1.Edit;
table1.Append;
table1.fieldbyname('dt').asstring:=datetimetostr(now);
table1.fieldbyname('zt').asstring:='登录失败'+inttostr(iii)+'次';
table1.FieldByName('user').asstring:=dbc1.Text;
table1.Post;
table1.Edit;
application.messagebox('非法用户,请再试一次,你共有三次机会','警告!!!',mb_iconstop);
edit1.text:='';
edit1.setfocus;
end
else
begin
application.messagebox('非法用户,你无权使用,请向使用者咨询密码','提示框',mb_ok+mb_iconinformation);
table1.Edit;
table1.Append;
table1.fieldbyname('dt').asstring:=datetimetostr(now);
table1.fieldbyname('zt').asstring:='登录失败'+inttostr(iii)+'次';
table1.FieldByName('user').asstring:=dbc1.Text;
table1.Post;
table1.Edit;
application.Terminate;
end;
end;
end;
end;
end;
procedure TPassWord.BitBtn2Click(Sender: TObject);
begin
fan:=0;
table1.open;
table1.Edit;
table1.Append;
table1.fieldbyname('dt').asstring:=datetimetostr(now);
table1.fieldbyname('zt').asstring:='取消登录';
table1.FieldByName('user').asstring:=dbc1.Text;
table1.post;
// table1.edit;
// close;
if passd=0 then
application.Terminate
else close;
end;
procedure TPassWord.FormShow(Sender: TObject);
begin
iii:=0;
dbc1.Items.Clear;
if datat=nil then
Application.CreateForm(Tdatat,datat);
if passd=0 then
Begin
dbc1.Items.Clear;
//日期
maskedit1.Text:=copy(datetostr(date),1,4);
edit4.Text:=inttostr(strtoint(copy(datetostr(date),6,2)));
end;
with datat.table3 do begin
Open;
first;
while not eof do
begin
dbc1.Items.Add(datat.table3.fieldbyname('user').asstring);
next;
end;
first;
end;
edit1.setfocus;
dbc1.ItemIndex:=0;
// edit2.Text:=datat.Table3.FieldByName('level').AsString;
// dbc1.Text:=datat.table3.fieldbyname('user').asstring;
end;
procedure TPassWord.DBC1Exit(Sender: TObject);
begin
with datat.table3 do
begin
if findkey([password.dbc1.text]) then
begin
// edit2.text:=fieldbyname('level').asstring;
end;
end;
end;
{ ************************** Create Procedure for Table Utd ************************** }
Procedure CreateUtdtable(PathToTable : String);
begin
with TTable.Create(Application) do
begin
Active := False;
DatabaseName := PathToTable;
TableName := 'Utd';
TableType := ttDefault;
FieldDefs.Add('User', ftString, 10, False);
FieldDefs.Add('Dt', ftString, 20, False);
FieldDefs.Add('Zt', ftString, 10, False);
CreateTable;
Free;
end;
end;
{ ************************** Create Procedure for Table para ************************** }
Procedure CreateParatable(PathToTable : String);
begin
with TTable.Create(Application) do
begin
Active := False;
DatabaseName := PathToTable;
TableName := 'para';
TableType := ttparadox;
FieldDefs.Add('User', ftString, 20, False);
FieldDefs.Add('Level', ftString, 10, False);
FieldDefs.Add('Pass', ftString, 10, False);
IndexDefs.Add('', 'User', [ixPrimary, ixUnique]);
CreateTable;
Free;
end;
end;
procedure TPassWord.FormCreate(Sender: TObject);
begin
if not (fileexists(ExtractFileDir(Application.EXEName)+'\utd.db')) then
CreateUtdtable(ExtractFileDir(Application.EXEName));
if not (fileexists(ExtractFileDir(Application.EXEName)+'\para.db')) then
begin
Createparatable(ExtractFileDir(Application.EXEName));
password.Caption:='您是第一次运行本程序,请退出重新启动!!!';
bitbtn1.Enabled:=false;
{ dbc1.Enabled:=false;
edit1.Enabled:=false;
maskedit1.Enabled:=false;
edit4.Enabled:=false;
updown1.Enabled:=false;
updown2.Enabled:=false;}
with datat.Table3 do
begin
Open;
edit;
FieldByName('user').AsString:='1234';
FieldByName('pass').AsString:='8888';
post;
Close;
end;
end;
table1.DatabaseName:=ExtractFileDir(Application.EXEName);
fan:=1;
//局部变量 判断是否是第一次登录
passd:=0;
session.AddPassword('fnblkzydlk');
table1.open;
table1.Edit;
table1.Append;
table1.fieldbyname('dt').asstring:=datetimetostr(now);
table1.fieldbyname('zt').asstring:='开始登录';
table1.FieldByName('user').asstring:=dbc1.Text;
table1.post;
end;
procedure TPassWord.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var ddd,sss:string;
begin
password.Caption:='用户登录';
if (strtoint((edit4.Text))>strtoint(copy(datetostr(date),6,2))) or (strtoint((maskedit1.Text))>strtoint(copy(datetostr(date),1,4)))
then
begin
ddd:=password.maskedit1.text+'-'+inttostr(strtoint(password.edit4.text));
sss:=copy(datetostr(date),1,4)+'-'+copy(datetostr(date),6,2)+'-'+copy(datetostr(date),9,10);
if MessageBox(Handle,pchar('您所选择的日期'+ddd+'比现在'+sss+'晚,进行吗?'),pchar(caption),mb_iconinformation+mb_okcancel)
=mrok then
canclose:=true
else
canclose:=false;
end;
if fan=0 then
canclose:=true
else
canclose:=false;
end;
procedure TPassWord.DBC1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key in[vk_RETURN] then
begin
sendmessage(handle,wm_nextdlgctl,0,0);
end;
end;
procedure TPassWord.SpeedButton9Click(Sender: TObject);
begin
application.messagebox('初始用户1234,初始密码8888','提示框',mb_ok+mb_iconinformation);
edit1.Text:='';
edit1.Text:='8888';
end;
procedure TPassWord.SpeedButton1Click(Sender: TObject);
begin
application.CreateForm(TCnDateForm,CnDateForm);
CnDateForm.showmodal;
CndateForm.release;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -