📄 userchangepwd.pas
字号:
unit UserChangePwd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, TFlatButtonUnit, ExtCtrls,ADODB;
type
TfrmChangePwd = class(TForm)
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label1: TLabel;
Bevel1: TBevel;
btnSure: TFlatButton;
btnCancel: TFlatButton;
edtNewPwd: TEdit;
edtNewSure: TEdit;
edtOldPwd: TEdit;
procedure edtOldPwdKeyPress(Sender: TObject; var Key: Char);
procedure edtNewPwdKeyPress(Sender: TObject; var Key: Char);
procedure edtNewSureKeyPress(Sender: TObject; var Key: Char);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure btnSureClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
function item_check():boolean;
function check_old():Boolean; //检验旧密码是否正确
function update_pwd():boolean; //更新密码
{ Private declarations }
public
{ Public declarations }
end;
var
frmChangePwd: TfrmChangePwd;
implementation
uses dbConn, userLogin;
{$R *.dfm}
procedure TfrmChangePwd.edtOldPwdKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
edtNewpwd.SetFocus ;
end;
procedure TfrmChangePwd.edtNewPwdKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
edtNewsure.SetFocus ;
end;
procedure TfrmChangePwd.edtNewSureKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
btnSure.Click ;
end;
procedure TfrmChangePwd.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
end;
procedure TfrmChangePwd.btnSureClick(Sender: TObject);
begin
if item_check=true then
begin
if check_old=false then
begin
edtNewPwd.Text:='';
edtNewSure.Text:='';
edtNewPwd.SetFocus ;
Exit;
end;
if update_pwd=true then
begin
MessageBox(0,'更改成功,请记住您的新密码', '密码修改', 64);
CurrentOperateItem:='更改用户密码';
dbConn.SaveOperateLog(frmLogin.spLog,CurrentUserID,CurrentUser,now,CurrentOperateItem);
self.Close ;
end;
end;
end;
//*****************************************
// item_check() 检查输入项是否符合要求
//*****************************************
function TfrmChangePwd.item_check():boolean;
begin
try
if edtOldPwd.Text ='' then
begin
MessageBox(0,'请输入您的旧密码', '密码修改', 64);
edtOldPwd.SetFocus;
exit;
end;
if edtNewPwd.Text ='' then
begin
MessageBox(0,'请输入您的新密码', '密码修改', 64);
edtNewPwd.SetFocus;
exit;
end;
if edtNewSure.Text ='' then
begin
MessageBox(0,'请输入您确认的新密码', '密码修改', 64);
edtNewSure.SetFocus;
exit;
end;
if trim(edtNewPwd.Text)<>trim(edtNewSure.Text) then
begin
edtNewPwd.Text :='';
edtNewSure.Text :='';
MessageBox(0,'您输入的密码不一致,请重新输入', '密码修改', 64);
edtNewPwd.SetFocus;
exit;
end;
item_check:=true;
except
On e:Exception Do begin
item_check:=false;
MessageBox(0,'','错误信息',64);
Close;
End;
end;
end;
//*****************************************
// check_old() 检查旧密码是否正确
//*****************************************
function TfrmChangePwd.check_old():Boolean; //检验旧密码是否正确
var
rs:TADODataSet;
sql:String;
begin
try
rs:=TADODataSet.Create(nil);
rs.Connection:=cn_public;
sql:='select USERID,PASSWORD FROM photocheck.P_USER WHERE USERID='''+CurrentUserID+'''';
sql:= sql +' AND password='''+trim(edtOldPwd.Text)+'''';
rs.CommandText:= sql;
rs.Open;
if rs.Eof then
begin
messagebox(0,'您的旧密码有误!','修改密码',16);
edtOldPwd.SetFocus;
rs.Close ;
result:=false;
exit;
end;
if rs.RecordCount=1 then
begin
rs.Close ;
result:=true;
exit;
end;
except
on ex:exception do
begin
rs.Close;
result:=false;
messagebox(0,'TfrmChangePwd.check_old():error','修改密码',16);
end;
end;
end;
//*****************************************
// update_pwd() 更改密码操作
//*****************************************
function TfrmChangePwd.update_pwd():boolean; //更新密码
var
sql:String;
begin
try
sql:='UPDATE photocheck.P_USER set password='''+trim(edtNewPwd.Text)+'''';
sql:=sql+' WHERE USERID='''+CurrentUserID+'''';
if dbConn.Execute_SQL(sql)=true then
result:=true
else
result:=false;
except
on ex:exception do
begin
result:=false;
messagebox(0,'TfrmChangePwd.check_old():error','修改密码',16);
end;
end;
end;
procedure TfrmChangePwd.btnCancelClick(Sender: TObject);
begin
CurrentOperateItem:='更改用户密码取消';
dbConn.SaveOperateLog(frmLogin.spLog ,CurrentUserID,CurrentUser,now,CurrentOperateItem);
Close;
end;
procedure TfrmChangePwd.FormShow(Sender: TObject);
begin
edtOldPwd.Text :='';
edtNewPwd.Text :='';
edtNewSure.Text :='';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -