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

📄 unit_editpass.pas

📁 传奇3封外挂客户端+登陆器+配置器源码............................
💻 PAS
字号:
unit Unit_EditPass;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, SUIForm, StdCtrls, SUIEdit, SUIButton, SUIDlg,
  ComCtrls, SUIStatusBar, ScktComp;

type
  TFrm_EditPass = class(TForm)
    suiForm1: TsuiForm;
    Label2: TLabel;
    Edit_ID: TsuiEdit;
    Label3: TLabel;
    Edit_OLDPass: TsuiEdit;
    Edit_ConfigPass: TsuiEdit;
    Label4: TLabel;
    Bt_Edit: TsuiButton;
    Bt_Close: TsuiButton;
    suiMessageDialog1: TsuiMessageDialog;
    suiStatusBar1: TsuiStatusBar;
    CSocket: TClientSocket;
    Timer1: TTimer;
    Label1: TLabel;
    Edit_NewPass: TsuiEdit;
    procedure Show_Message(text:String;Icon:TsuiIconType);
    procedure Bt_CloseClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CSocketError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
    function DecodeMessagePacket(data:String):integer;
    procedure Bt_EditClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_EditPass: TFrm_EditPass;
implementation

uses Unit_Main, Unit_Msg, Unit_MyPro;

{$R *.dfm}

procedure TFrm_EditPass.Show_Message(text:String;Icon:TsuiIconType);
begin
  suiMessageDialog1.Caption:='提示信息';
  suiMessageDialog1.Text:=text;
  suiMessageDialog1.IconType:=Icon;
  suiMessageDialog1.ShowModal;
end;


procedure TFrm_EditPass.Bt_CloseClick(Sender: TObject);
begin
  Close;
end;

procedure TFrm_EditPass.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  CSocket.Active:=False;
  Edit_ID.Text:='';
  Edit_OLDPass.Text:='';
  Edit_NewPass.Text:='';
  Edit_ConfigPass.Text:='';
end;

procedure TFrm_EditPass.CSocketError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  suiStatusBar1.Panels[0].Text:='连接失败,可能未开启注册服务。';
  CSocket.Active:=False;
  ErrorCode:=0;
end;

procedure TFrm_EditPass.CSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  str,data:string;
begin
  str:=Socket.ReceiveText;
  str:=ArrestStringEx(str,'#','!',data);
  DecodeMessagePacket(data);
end;

function TFrm_EditPass.DecodeMessagePacket(data:String):integer;
var
  head, body: String;
  msg:TDefaultMessage;
begin
  Result:=0;
  head := Copy (data, 1, DEFBLOCKSIZE);
  body := Copy (data, DEFBLOCKSIZE+1, Length(data)-DEFBLOCKSIZE);
  msg  := DecodeMessage (head);
  if msg.Comm=SM_EditPass_Success then
  begin
    show_message('您的密码已经修改完成,请用新密码登陆!',suiInformation);
    Bt_Close.Click;
  end;
  if msg.Comm=SM_EditPass_Fail then
  begin
    if msg.param=1 then
    begin
      Show_Message('新密码不能少于5位!',suiWarning);
      Edit_NewPass.SetFocus;
    end;
    if msg.param=2 then
    begin
      Show_Message('修改密码失败,帐号不存在',suiWarning);
      Edit_ID.SetFocus;
    end;
    if msg.param=3 then
    begin
      Show_Message('修改密码失败,旧的密码或提示问题回答错误!',suiWarning);
      Edit_OldPass.SetFocus;
    end;
    if msg.param=4 then
    begin
      Show_Message('修改密码失败,你输入的内容中可能有非法字符!',suiWarning);
      Edit_OldPass.SetFocus;
    end;
  end;
  CSocket.Close;
  suiStatusBar1.Panels[0].Text:='断开连接。';
end;



procedure TFrm_EditPass.Bt_EditClick(Sender: TObject);
begin
  if Length(Edit_OLDPass.Text)<5 then
  begin
    show_message('密码不能少于5位!',suiWarning);
    Edit_OLDPass.SetFocus;
    exit;
  end;
  if Length(Edit_NewPass.Text)<5 then
  begin
    show_message('密码不能少于5位!',suiWarning);
    Edit_NewPass.SetFocus;
    exit;
  end;
  if Edit_NewPass.Text<>Edit_ConfigPass.Text then
  begin
    show_message('请再次确认密码!',suiWarning);
    Edit_ConfigPass.SetFocus;
    exit;
  end;
  suiStatusBar1.Panels[0].Text:='正在向服务器发送修改密码请求!';
  CSocket.Active:=False;
  CSocket.Address:=Reg_SvrIp;
  CSocket.Port:=Reg_SvrPort;
  Try
    CSocket.Active:=True;
  except end;
  Timer1.Enabled:=True;

end;

procedure TFrm_EditPass.Timer1Timer(Sender: TObject);
var
  Ep:T_CEditPass;
  msg:TDefaultMessage;
begin
  Ep.LoginId:=Edit_ID.Text;
  Ep.OldPassWord:=Edit_OldPass.Text;
  Ep.NewPassWord:=Edit_NewPass.Text;
  msg:=MakeDefaultMsg(CM_EditPass,0);
  SendSocket(CSocket.Socket,EncodeMessage(msg)+EncodeBuffer(@Ep, sizeof(T_CEditPass)));
  Timer1.Enabled:=False;
end;

procedure TFrm_EditPass.FormCreate(Sender: TObject);
begin
  SetForm_Style(suiForm1,ExeType);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -