📄 unitkaoqin.pas
字号:
unit UnitKaoqin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, DBGrids, DB, ADODB, StdCtrls, ComCtrls,
DBCtrls, Mask;
type
TfrmKaoqin = class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
editID: TEdit;
Label2: TLabel;
editPassword: TEdit;
btnEnter: TButton;
btnQuit: TButton;
StatusBar1: TStatusBar;
Timer1: TTimer;
btnAlterPwd: TButton;
GroupBox2: TGroupBox;
Label9: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Panel2: TPanel;
Label8: TLabel;
Label10: TLabel;
lblStatus: TLabel;
lblTime: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
procedure Timer1Timer(Sender: TObject);
procedure btnEnterClick(Sender: TObject);
procedure btnQuitClick(Sender: TObject);
procedure dataDisplay(id:string);
procedure btnAlterPwdClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmKaoqin: TfrmKaoqin;
uid,upwd : string;
resultValue:integer;
pass,status:boolean;
implementation
uses unitAlterPwd,unitDataModule;
{$R *.dfm}
procedure TfrmKaoqin.dataDisplay(id:string);
begin
with dModule.ADOQU do
begin
edit1.Text := fieldbyname('name').AsString;
edit2.Text := fieldbyname('id').AsString;
edit3.Text := fieldbyname('major').AsString;
edit4.Text := fieldbyname('sex').AsString;
edit5.Text := fieldbyname('grade').AsString;
edit6.Text := fieldbyname('class').AsString;
end;
end;
procedure TfrmKaoqin.Timer1Timer(Sender: TObject);
begin
statusbar1.Panels[1].Text:= datetimetostr(Now);
end;
procedure TfrmKaoqin.btnEnterClick(Sender: TObject);
begin
uid := trim(editID.Text);
upwd := editPassword.Text;
pass := dModule.check(uid,upwd,resultValue);
if pass then
begin
with dModule.ADOQRecords do
begin
close;
sql.Clear;
sql.Add('select * from records where userid = ''' + uid + ''' order by timeIn asc'); //查询uid的最后一次登陆状态
open;
last;
status := fieldbyname('isOn').AsBoolean;
if status then
begin
messagedlg('你已于 ' + FieldByName('timeIn').asstring +' 登陆,请先登出后再登入',mtInformation,mbokcancel,0);
editID.SetFocus;
end
else
begin
append;
fieldbyname('userid').Value := uid;
fieldbyname('timeIn').Value := DateTimeToStr(now);
fieldbyname('isOn').Value := true; //标识用户已登陆
post;
editID.Clear;
editPassword.Clear;
editID.setfocus;
dataDisplay(uid); //重新用户显示
lblStatus.Caption := '登入'; //修改状态显示
lbltime.Caption := DateTimeToStr(now);
end;
end;
end
else
begin
case resultValue of
1:
begin
messagebox(0,'该用户不存在!,请重新输入合法的用户ID','提示',0);
editid.Clear;
editpassword.Clear;
editID.setfocus;
end;
2:
begin
messagebox(0,'密码错误,请重新输入','提示',0);
editpassword.SetFocus;
end;
end;
end;
end;
procedure TfrmKaoqin.btnQuitClick(Sender: TObject);
begin
uid := trim(editID.Text);
upwd := editPassword.Text;
pass := dModule.check(uid,upwd,resultValue);
if pass then
begin
with dModule.ADOQRecords do
begin
close;
sql.Clear;
sql.Add('select * from records where userid = ''' + uid + ''' order by timeIn asc'); //查询uid的最后一次登陆状态
open;
last;
status := fieldbyname('isOn').AsBoolean;
if status then
begin
edit;
fieldbyname('timeOut').Value := DateTimeToStr(now);
fieldbyname('isOn').Value := false; //标识用户已登出
post;
datadisplay(uid);
lblStatus.Caption := '登出'; //修改状态显示
lbltime.Caption := DateTimeToStr(now);
messagebox(0,'登出成功!','提示',0);
editID.Clear; //清空登陆记录
editPassword.Clear;
editID.setfocus;
end
else
messagebox(0,'您尚未登入','提示',0);
end;
end
else
begin
case resultValue of
1:
begin
messagebox(0,'该用户不存在!,请重新输入合法的用户ID','提示',0);
editid.Clear;
editpassword.Clear;
editID.setfocus;
end;
2:
begin
messagebox(0,'密码错误,请重新输入','提示',0);
editpassword.SetFocus;
end;
end;
end;
end;
procedure TfrmKaoqin.btnAlterPwdClick(Sender: TObject);
begin
uid := trim(editID.Text);
upwd := editPassword.Text;
pass := dModule.check(uid,upwd,resultValue);
if pass then
begin
gUserID := uID; //传值给弹出窗口的uid
editID.clear;
editPassword.clear;
Application.CreateForm(TfrmAlterPwd, frmAlterPwd);
frmAlterPwd.Show;
end
else
begin
case resultValue of
1:
begin
messagebox(0,'该用户不存在!,请重新输入合法的用户ID','提示',0);
editid.Clear;
editpassword.Clear;
editID.setfocus;
end;
2:
begin
messagebox(0,'密码错误,请重新输入','提示',0);
editpassword.SetFocus;
end;
end;
end;
end;
procedure TfrmKaoqin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -