📄 changepasswordfrm.pas
字号:
unit ChangePasswordFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SJCustomProperty, cxLookAndFeelPainters, PropStorageEh,
StdCtrls, cxButtons, ExtCtrls, cxControls, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit;
type
TfrmPropertyChangePassword = class(TSJCustomPropertyForm)
Image1: TImage;
labUser: TLabel;
Label2: TLabel;
edtOldPassword: TcxMaskEdit;
Label3: TLabel;
edtNewPassword: TcxMaskEdit;
Label4: TLabel;
edtConfirm: TcxMaskEdit;
procedure FormCreate(Sender: TObject);
procedure btnOKClick(Sender: TObject);
private
FErrorCount: Integer;
FUserID: string;
function GetOldPassword: string;
public
property OldPassword: string read GetOldPassword;
property UserID: string read FUserID write FUserID;
end;
var
frmPropertyChangePassword: TfrmPropertyChangePassword;
implementation
uses InvPrintDM, MainFrm, SJInvPrintGlobal, Encryption;
{$R *.dfm}
{ TfrmPropertyChangePassword }
function TfrmPropertyChangePassword.GetOldPassword: string;
// 获取当前用户的旧密码,此处有一个小小的缺陷如果在打开用户表时出错,则任何不
// 持有合法口令的用户都可以进入系统,在下步将修复它 2002-10-25 Xsp
var
APassword: string;
begin
APassword := '';
dmInvPrint.GetUserPassword(UserID, APassword);
Result := APassword;
end;
procedure TfrmPropertyChangePassword.FormCreate(Sender: TObject);
begin
inherited;
FErrorCount := 1;
end;
procedure TfrmPropertyChangePassword.btnOKClick(Sender: TObject);
// 检查用户输入的旧密码是否正确
var
APassword: string;
begin
inherited;
if (OldPassword <> '') and (OldPassword <> GDefaultPassword) then
begin
APassword := SimpleEnDecrypt(edtOldPassword.Text, gKey);
if APassword <> OldPassword then
begin
ShowMessage('您输入的旧口令不正确请重新输入。');
edtOldPassword.SetFocus;
Inc(FErrorCount);
if FErrorCount > gLoginCount then
begin
ShowMessage('你没有取得正确的原始口令,请与管理员联系。');
Application.Terminate;
end;
Exit;
end;
end;
// 检查用户输入的新口令是否一致
if edtNewPassword.Text <> edtConfirm.Text then
begin
ShowMessage('您输入的新口令不一致,请重新输入。');
edtNewPassword.SetFocus;
Exit;
end;
if Length(edtNewPassword.Text) < 6 then
begin
ShowMessage('您输入的新口令太简单,您可以更长的口令字。');
edtNewPassword.SetFocus;
Exit;
end;
ModalResult := mrOk;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -