⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changepasswordunit.pas

📁 简单的进销存系统,包含登陆等界面,内容丰富,各种技巧,适合初学者
💻 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 + -