📄 changepasswordunit.pas
字号:
unit ChangePasswordUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ADODB, DB;
type
TChgPwdForm = class(TForm)
Label1: TLabel;
edUserID: TEdit;
bnOK: TBitBtn;
bnCancel: TBitBtn;
edUserName: TEdit;
Label2: TLabel;
Label5: TLabel;
edPrevPassword: TEdit;
edNewPassword: TEdit;
edConfirmNewPassword: TEdit;
Label4: TLabel;
Label3: TLabel;
ADOQuery_data: TADOQuery;
ADOCommand_data: TADOCommand;
procedure bnCancelClick(Sender: TObject);
procedure bnOKClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ChgPwdForm: TChgPwdForm;
sPrevPassword: string;
implementation
uses DMUnit, MainUnit, FunctionUnit;
{$R *.dfm}
procedure TChgPwdForm.bnCancelClick(Sender: TObject);
begin
MyInformation('密码未变更。下次进入系统请继续使用原来的密码!');
end;
procedure TChgPwdForm.bnOKClick(Sender: TObject);
begin
if Trim(edPrevPassword.Text) = '' then
begin
MyWarning('原密码不可空白,请重新输入!');
edPrevPassword.SetFocus;
Abort;
end;
if Trim(edPrevPassword.Text) <> sPrevPassword then
begin
MyWarning('原密码输入错误,请重新输入!');
edPrevPassword.SetFocus;
Abort;
end;
if Trim(edNewPassword.Text) = '' then
begin
MyWarning('新密码不可空白,请重新输入!');
edNewPassword.SetFocus;
Abort;
end;
if Trim(edNewPassword.Text) <> Trim(edConfirmNewPassword.Text) then
begin
MyWarning('确认新密码与新通行密码不一致,请重新输入!');
edConfirmNewPassword.SetFocus;
Abort;
end;
try
with ADOCommand_data do
begin
CommandText:='';
CommandText:='update SysUser set 密码=:密码'
+' '+'where 用户名=''' + edUserID.Text + '''';
Parameters.Items[0].Value := edNewPassword.Text;
Prepared := true;
Execute;
end;
MyInformation('密码变更完成,下次进入系统请使用新的密码!');
except
MyError('密码变更失败,请稍候再试或与系统管理员联系!');
raise;
end;
Close;
end;
procedure TChgPwdForm.FormShow(Sender: TObject);
begin
try
// 在前两个文本框中显示当前用户的编号和密码
edUserID.Text := USERID;//MainForm.Auser.UserID;
edUserName.Text :=USERNAME; //MainForm.Auser.UserName;
// 当前数据表中定位该ID对应的记录
//DM.tbInput.Locate('UserID', edUserID.Text, []);
with ADOQuery_data do
begin
close;
sql.Clear;
sql.Text := 'SELECT * FROM SysUser where 用户名='''+edUserID.Text +''' ';
active:=true;
if not eof then
sPrevPassword := trim(FieldByName('密码').AsString);
end;
//清空各个文本框和密码框的内容
edPrevPassword.Text := '';
edNewPassword.Text := '';
edConfirmNewPassword.Text := '';
except
MyError('数据读取出错');
end;
end;
procedure TChgPwdForm.FormCreate(Sender: TObject);
begin
AdoCommand_data.Connection:=DM.ADOCon;
adoquery_data.Connection:=DM.ADOCon;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -