📄 unit_editpass.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 + -