📄 changepassform.pas
字号:
unit ChangePassForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
EditForm, dxCntner, dxEditor, dxEdLib, dxDBELib, StdCtrls,
Buttons, ExtCtrls, dxExEdtr, inifiles, SysPublic, Db,
DBGrids, ADODB, KsControls, KsButtons, KsSkinButtons, KsHooks, KsForms,
KsSkinForms, KsLabels, KsSkinLabels, KsMessages, KsSkinMessages;
type
TfrmChangePass = class(TfrmEditForm)
lblPass: TSeSkinLabel;
bbOk: TSeSkinButton;
bbNo: TSeSkinButton;
edtNew1: TdxEdit;
lblSou: TSeSkinLabel;
edtSou: TdxEdit;
lblNew2: TSeSkinLabel;
edtNew2: TdxEdit;
DataSet: TADODataSet;
procedure bbNoClick(Sender: TObject);
procedure bbOkClick(Sender: TObject);
private
{ Private declarations }
bReturn: Boolean;
lPubID, lPubAdmin: Integer;
sSouPass: string;
procedure MainShow;
procedure LoadGrid;
function LoadData: Boolean;
function SaveMsg: boolean;
public
{ Public declarations }
end;
function ChangePassShow(lID, lAdmin: Integer): Boolean;
//lAdmin是否是管理员在操作
implementation
uses LoginForm, DBData, UserLimitForm;
{$R *.DFM}
function ChangePassShow(lID, lAdmin: Integer): Boolean;
var
frmChangePass: TfrmChangePass;
begin
frmChangePass := TfrmChangePass.Create(Application);
with frmChangePass do
begin
lPubID := lID;
lPubAdmin := lAdmin;
MainShow;
Result := bReturn;
Free;
end;
end;
procedure TfrmChangePass.MainShow;
begin
Caption := '用户修改密码';
if not CheckLimit(CHANGE_PASSWORD) then
begin
ShowMsg('对不起,你没有权限使用此工能!');
Exit;
end;
LoadGrid;
if LoadData then
ShowModal;
DataSet.Close;
end;
procedure TfrmChangePass.LoadGrid;
begin
if lPubAdmin = 0 then
begin
edtNew1.PasswordChar := '*';
end
else
begin
lblSou.Visible := False;
edtSou.Visible := False;
lblNew2.Visible := False;
edtNew2.Visible := False;
edtNew1.PasswordChar := #0;
end;
end;
function TfrmChangePass.LoadData: Boolean;
var
sSql: string;
begin
Result := False;
if lPubID = 0 then
Exit;
sSql := 'SELECT ID,Password FROM Employe WHERE Quit<>true and ID=' +
IntToStr(lPubID);
OpenDataSet(DataSet, sSql);
if DataSet.RecordCount >= 1 then
begin
sSouPass := StringDecrypt(DataSet.FieldByName('Password').AsString,
ENCRYPT_KEY);
if lPubAdmin > 0 then
edtNew1.Text := sSouPass;
Result := True;
end
else
ShowMsg('读取用户资料出错,请检查数据库!');
end;
procedure TfrmChangePass.bbNoClick(Sender: TObject);
begin
inherited;
bReturn := false;
Close;
end;
function TfrmChangePass.SaveMsg: boolean;
begin
Result := False;
if edtSou.Visible and (sSouPass <> edtSou.Text) then
begin
MsgBox('原密码不正确,请重新输入原密码!', '提示', MB_OK);
Exit;
end;
if edtNew2.Visible and (edtNew2.Text <> edtNew1.Text) then
begin
MsgBox('用户密码和确认密码必须相同!', '提示', MB_OK);
Exit;
end;
Result := True;
end;
procedure TfrmChangePass.bbOkClick(Sender: TObject);
begin
inherited;
if not SaveMsg then
exit;
DataSet.Edit;
DataSet.FieldByName('Password').AsString := StringEncrypt(edtNew1.Text,
ENCRYPT_KEY);
SaveDataSet(DataSet, False);
if edtSou.Visible then
MsgBox('密码修改成功!', '提示', MB_OK);
bReturn := true;
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -