123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- unit ScModifyPwdFrm;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, JimCombos, ExtCtrls, StdCtrls, cxLookAndFeelPainters,
- cxTextEdit, cxButtons, cxControls, cxEdit,
- cxMaskEdit, cxDropDownEdit, HookEdit, cxContainer, cslLabel;
- type
- TModifyPwdFrm = class(TForm)
- Image1: TImage;
- cxbComfirm: TcxButton;
- GroupBox1: TGroupBox;
- Label1: TLabel;
- Label2: TLabel;
- cxeUserName: TcxTextEdit;
- edtPassword: TEdit;
- Label3: TLabel;
- edtNewPassword: TEdit;
- Label4: TLabel;
- cxbExit: TcxButton;
- edtConfirmNewPassword: TEdit;
- Label6: TLabel;
- procedure edtPasswordEnter(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure edtNewPasswordEnter(Sender: TObject);
- procedure edtConfirmNewPasswordEnter(Sender: TObject);
- procedure cxbComfirmClick(Sender: TObject);
- procedure cxbExitClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- function CheckData: Boolean;
- end;
- function ShowModifyPwdForm(var AUserName, APW, ANewPW1, ANewPW2: string): Boolean;
- implementation
- uses
- ScClientDM, ScUtils, ShellAPI, IniFiles;
- {$R *.dfm}
- type
- TEditAccess = class(TcxCustomTextEdit);
- // chenshilong, 2011-05-13 10:21:54
- function ShowModifyPwdForm(var AUserName, APW, ANewPW1, ANewPW2: string): Boolean;
- var
- Form: TModifyPwdFrm;
- begin
- Result := False;
- Form := TModifyPwdFrm.Create(nil);
- try
- AUserName := UserConfigInfo.UserName;
- APW := '';
- Form.cxeUserName.Text := UserConfigInfo.UserName;
- // ANewPW1 := UserConfigInfo.NewPassWord1;
- // ANewPW2 := UserConfigInfo.NewPassWord2;
- // Form.edtPassword.Text := UserConfigInfo.PassWord;
-
- if Form.ShowModal = mrOK then
- begin
- if APW <> '' then
- SetEncryptEdit(Form.edtPassword);
- if ANewPW1 <> '' then
- SetEncryptEdit(Form.edtNewPassword);
- if ANewPW2 <> '' then
- SetEncryptEdit(Form.edtConfirmNewPassword);
- AUserName := Trim(Form.cxeUserName.Text);
- APW := GetEncryptEditText(Form.edtPassword);
- ANewPW1 := GetEncryptEditText(Form.edtNewPassword);
- ANewPW2 := GetEncryptEditText(Form.edtConfirmNewPassword);
- DisableHookEdit;
- Result := True;
- end;
- finally
- Form.Free;
- end;
- end;
- { TLoginFrm }
- procedure TModifyPwdFrm.edtPasswordEnter(Sender: TObject);
- begin
- //edtPassword.Clear;
- SetEncryptEdit(TEdit(Sender));
- end;
- procedure TModifyPwdFrm.FormDestroy(Sender: TObject);
- begin
- RemoveEncryptEdit(edtPassword);
- RemoveEncryptEdit(edtNewPassword);
- RemoveEncryptEdit(edtConfirmNewPassword);
- end;
- procedure TModifyPwdFrm.edtNewPasswordEnter(Sender: TObject);
- begin
- //edtNewPassword.Clear;
- SetEncryptEdit(TEdit(Sender));
- end;
- procedure TModifyPwdFrm.edtConfirmNewPasswordEnter(Sender: TObject);
- begin
- //edtConfirmNewPassword.Clear;
- SetEncryptEdit(TEdit(Sender));
- end;
- procedure TModifyPwdFrm.cxbComfirmClick(Sender: TObject);
- begin
- if CheckData then
- ModalResult := mrOK;
- end;
- function TModifyPwdFrm.CheckData: Boolean;
- var
- APW, PWD1, PWD2, ReturnCopy: string;
- endWord: Char;
- i: Integer;
- begin
- APW := GetEncryptEditText(edtPassword);
- PWD1 := GetEncryptEditText(edtNewPassword);
- PWD2 := GetEncryptEditText(edtConfirmNewPassword);
- Result := True;
- if Trim(cxeUserName.Text) = '' then
- begin
- MessageHint(0, '请输入用户名。');
- Result := False;
- cxeUserName.SetFocus;
- Exit;
- end;
- if Trim(APW) = '' then
- begin
- MessageHint(0, '请输入密码。');
- Result := False;
- edtPassword.SetFocus;
- Exit;
- end;
- APW := Trim(APW);
- if Pos(' ', APW) > 0 then
- begin
- MessageHint(0, '请不要在密码中输入空格。');
- Result := False;
- edtPassword.SetFocus;
- Exit;
- end;
- for I := 1 to Length(APW) do
- begin
- ReturnCopy := Copy(APW, I, 1);
- endWord := ReturnCopy[1];
- if Ord(endWord) >= 128 then
- begin
- MessageHint(0, '请不要在密码中输入汉字。');
- Result := False;
- edtPassword.SetFocus;
- Exit;
- end;
- end;
- if Trim(PWD1) = '' then
- begin
- MessageHint(0, '请输入新密码。');
- Result := False;
- edtNewPassword.SetFocus;
- Exit;
- end;
- PWD1 := Trim(PWD1);
- if Pos(' ', PWD1) > 0 then
- begin
- MessageHint(0, '请不要在新密码中输入空格。');
- Result := False;
- edtNewPassword.SetFocus;
- Exit;
- end;
- if (Length(PWD1) < 6) or (Length(PWD1) > 12) then
- begin
- MessageHint(0, '您输入的新密码长度不合规范,请重新输入!。');
- Result := False;
- edtNewPassword.SetFocus;
- Exit;
- end;
- for I := 1 to Length(PWD1) do
- begin
- ReturnCopy := Copy(PWD1, I, 1);
- endWord := ReturnCopy[1];
- if Ord(endWord) >= 128 then
- begin
- MessageHint(0, '请不要在新密码中输入汉字。');
- Result := False;
- edtNewPassword.SetFocus;
- Exit;
- end;
- end;
- if Trim(edtConfirmNewPassword.Text) = '' then
- begin
- MessageHint(0, '请输入确认密码。');
- Result := False;
- edtConfirmNewPassword.SetFocus;
- Exit;
- end;
- PWD1 := GetEncryptEditText(edtNewPassword);
- PWD2 := GetEncryptEditText(edtConfirmNewPassword);
- if CompareStr(PWD1, PWD2) <> 0 then
- begin
- MessageHint(0, '两次输入密码不一致,请重新输入,注意区分大小写。');
- Result := False;
- edtNewPassword.SetFocus;
- Exit;
- end;
- end;
- procedure TModifyPwdFrm.cxbExitClick(Sender: TObject);
- begin
- close;
- end;
- end.
|