📄 unitchangepassword.~pas
字号:
unit UnitChangePassword;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, AnyDBFactory;
type
TForm_ChangePassword = class(TForm)
Label1: TLabel;
Label3: TLabel;
UserName: TEdit;
OldPassword: TEdit;
BtnOk: TBitBtn;
BtnCancel: TBitBtn;
Label4: TLabel;
Label2: TLabel;
NewPassword: TEdit;
CheckPassword: TEdit;
procedure BtnOkClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure OldPasswordKeyPress(Sender: TObject; var Key: Char);
procedure CheckPasswordKeyPress(Sender: TObject; var Key: Char);
procedure NewPasswordKeyPress(Sender: TObject; var Key: Char);
procedure BtnCancelClick(Sender: TObject);
procedure UserNameKeyPress(Sender: TObject; var Key: Char);
private
FIsOk: Boolean;
FDBFactory: TAnyDBFactory;
{ Private declarations }
public
{ Public declarations }
property DBFactory:TAnyDBFactory read FDBFactory write FDBFactory;
property IsOK:Boolean read FIsOk;
end;
var
Form_ChangePassword: TForm_ChangePassword;
function ChangeUserPasswordWithDialog(ADBFactory:TAnyDBFactory): Boolean;
implementation
uses mis_Instance, AnyPoster, BusinessDialogs, mis_RightDBStore;
{$R *.DFM}
function ChangeUserPasswordWithDialog(ADBFactory:TAnyDBFactory): Boolean;
begin
with TForm_ChangePassword.Create(Application) do
begin
try
DBFactory:=ADBFactory;
ActiveControl:=UserName;
ShowModal;
Result:=IsOk
finally
Free;
end;
end;
end;
procedure TForm_ChangePassword.BtnOkClick(Sender: TObject);
begin
if (NewPassword.text='') or (CheckPassword.text='') then
begin
MyDefInformation(' 你必须有密码! ');
Exit;
end;
if uppercase(NewPassword.text)<>uppercase(CheckPassword.text) then
begin
MyDefInformation(' 两次密码输入不一致 ');
Exit;
end;
try
if ChangeUserPassword(FDBFactory,
App_UserInfo.UserName,
App_UserInfo.Password,
NewPassword.text) then
MyDefInformation('密码修改成功!')
else
MyDefInformation('用户信息已被删除,无法修改密码!');
except
MyWarning('密码修改失败,请重试!');
end;
FIsOk:=True;
Close;
end;
procedure TForm_ChangePassword.FormCreate(Sender: TObject);
begin
UserName.Text :=App_UserInfo.UserName;
FIsOk:=False;
end;
procedure TForm_ChangePassword.OldPasswordKeyPress(Sender: TObject;
var Key: Char);
begin
if Word(Key)=vk_return then
begin
if uppercase(App_UserInfo.Password)=uppercase(OldPassword.Text) then
begin
NewPassword.enabled:=true;
CheckPassword.enabled:=true;
NewPassword.Color:=clWindow;
CheckPassword.Color:=clWindow;
NewPassword.SetFocus;
end
else
begin
NewPassword.enabled:=false;
CheckPassword.enabled:=false;
NewPassword.Color:=clBtnFace;
CheckPassword.Color:=clBtnFace;
MyWarning('密码不正确,请重新输入!');
end
end;
end;
procedure TForm_ChangePassword.CheckPasswordKeyPress(Sender: TObject;
var Key: Char);
begin
if Word(Key)=vk_return then
begin
Key :=#0;
BtnOk.setfocus;
end;
end;
procedure TForm_ChangePassword.NewPasswordKeyPress(Sender: TObject;
var Key: Char);
begin
if Word(Key)=vk_return then
begin
Key :=#0;
CheckPassword.setfocus;
end;
end;
procedure TForm_ChangePassword.BtnCancelClick(Sender: TObject);
begin
Close;
end;
procedure TForm_ChangePassword.UserNameKeyPress(Sender: TObject;
var Key: Char);
begin
if Word(Key)=vk_return then
begin
Key :=#0;
CheckPassword.setfocus;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -