📄 unit_addnewid.pas
字号:
unit Unit_AddNewId;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, SUIForm, StdCtrls, SUIEdit, SUIButton, SUIDlg,
ComCtrls, SUIStatusBar, ScktComp;
type
TFrm_AddNewId = class(TForm)
suiForm1: TsuiForm;
Label2: TLabel;
Edit_ID: TsuiEdit;
Label3: TLabel;
Edit_Pass: TsuiEdit;
Edit_UserName: TsuiEdit;
Label8: TLabel;
Edit_ConfigPass: TsuiEdit;
Label4: TLabel;
Label9: TLabel;
Edit_BirthDay: TsuiEdit;
Label10: TLabel;
Edit_Phone: TsuiEdit;
Edit_EMail: TsuiEdit;
Label12: TLabel;
Edit_SSNO: TsuiEdit;
Label11: TLabel;
Label13: TLabel;
Edit_Quz1: TsuiEdit;
Label14: TLabel;
Edit_Answer1: TsuiEdit;
Label15: TLabel;
Label16: TLabel;
Edit_Quz2: TsuiEdit;
Edit_Answer2: TsuiEdit;
Bt_Add: TsuiButton;
Bt_Close: TsuiButton;
Label1: TLabel;
suiMessageDialog1: TsuiMessageDialog;
suiStatusBar1: TsuiStatusBar;
CSocket: TClientSocket;
Timer1: TTimer;
procedure Bt_AddClick(Sender: TObject);
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 Timer1Timer(Sender: TObject);
procedure CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
function DecodeMessagePacket(data:String):integer;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_AddNewId: TFrm_AddNewId;
implementation
uses Unit_Main, Unit_Msg, Unit_MyPro;
{$R *.dfm}
procedure TFrm_AddNewId.Bt_AddClick(Sender: TObject);
begin
if Length(Edit_Id.Text)<5 then
begin
show_message('用户名不能少于5位!',suiWarning);
Edit_Id.SetFocus;
exit;
end;
if Length(Edit_Pass.Text)<5 then
begin
show_message('密码不能少于5位!',suiWarning);
Edit_Pass.SetFocus;
exit;
end;
if Edit_ConfigPass.Text<>Edit_Pass.Text then
begin
show_message('请再次确认密码!',suiWarning);
Edit_ConfigPass.SetFocus;
exit;
end;
if length(Edit_Quz1.Text)<5 then
begin
show_message('密码保护问题不能少于5位!',suiWarning);
Edit_Quz1.SetFocus;
exit;
end;
if length(Edit_answer1.Text)<5 then
begin
show_message('密码保护问题答案不能少于5位!',suiWarning);
Edit_answer1.SetFocus;
exit;
end;
if Edit_answer1.Text=Edit_Quz1.Text then
begin
show_message('为了你的安全,请不要把问题做为你的答案!',suiWarning);
Edit_answer1.SetFocus;
exit;
end;
if length(Edit_Quz2.Text)<5 then
begin
show_message('密码保护问题不能少于5位!',suiWarning);
Edit_Quz2.SetFocus;
exit;
end;
if length(Edit_answer2.Text)<5 then
begin
show_message('密码保护问题答案不能少于5位!',suiWarning);
Edit_answer2.SetFocus;
exit;
end;
if Edit_answer2.Text=Edit_Quz2.Text then
begin
show_message('为了你的安全,请不要把问题做为你的答案!',suiWarning);
Edit_answer2.SetFocus;
exit;
end;
if Edit_answer2.Text=Edit_answer1.Text then
begin
show_message('密码保护问题1的答案不能与密码保护问题2的答案相同!',suiWarning);
Edit_answer2.SetFocus;
exit;
end;
if Edit_Quz1.Text=Edit_Quz2.Text then
begin
show_message('为了您的账户安全,我们强烈建议您的密码保护问题1和密码保护问题2不要设置相同的问题!',suiWarning);
Edit_Quz2.SetFocus;
exit;
end;
suiStatusBar1.Panels[0].Text:='正在与注册服务器连接......';
CSocket.Active:=False;
CSocket.Address:=Reg_SvrIp;
CSocket.Port:=Reg_SvrPort;
try
CSocket.Active:=True;
except
exit;
end;
Timer1.Enabled:=True;
end;
procedure TFrm_AddNewId.Show_Message(text:String;Icon:TsuiIconType);
begin
suiMessageDialog1.Caption:='提示信息';
suiMessageDialog1.Text:=text;
suiMessageDialog1.IconType:=Icon;
suiMessageDialog1.ShowModal;
end;
procedure TFrm_AddNewId.Bt_CloseClick(Sender: TObject);
begin
Close;
end;
procedure TFrm_AddNewId.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
CSocket.Active:=False;
Edit_ID.Text:='';
Edit_Pass.Text:='';
Edit_UserName.Text:='';
Edit_ConfigPass.Text:='';
Edit_BirthDay.Text:='';
Edit_Phone.Text:='';
Edit_EMail.Text:='';
Edit_SSNO.Text:='';
Edit_Quz1.Text:='';
Edit_Answer1.Text:='';
Edit_Quz2.Text:='';
Edit_Answer2.Text:='';
end;
procedure TFrm_AddNewId.CSocketError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
suiStatusBar1.Panels[0].Text:='连接失败,可能未开启注册服务。';
CSocket.Active:=False;
ErrorCode:=0;
end;
procedure TFrm_AddNewId.Timer1Timer(Sender: TObject);
var
ue:TUserInfo;
msg:TDefaultMessage;
begin
ue.LoginId:=Edit_ID.Text;
ue.PassWord:=Edit_Pass.Text;
ue.UserName:=Edit_UserName.Text;
ue.BirthDay:=Edit_BirthDay.Text;
ue.Phone:=Edit_Phone.Text;
ue.SSNo:=Edit_SSNO.Text;
ue.Email:=Edit_EMail.Text;
ue.Quz1:=Edit_Quz1.Text;
ue.Answer1:=Edit_Answer1.Text;
ue.Quz2:=Edit_Quz2.Text;
ue.Answer2:=Edit_Answer2.Text;
msg:=MakeDefaultMsg(CM_AddNewId,0);
SendSocket(CSocket.Socket,EncodeMessage(msg)+EncodeBuffer(@ue, sizeof(TUserInfo)));
Timer1.Enabled:=False;
end;
procedure TFrm_AddNewId.CSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
var
str,data:string;
begin
str:=Socket.ReceiveText;
str:=ArrestStringEx(str,'#','!',data);
DecodeMessagePacket(data);
end;
function TFrm_AddNewId.DecodeMessagePacket(data:String):integer;
var
head, body: String;
ue:TUserInfo;
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_AddNewId_Success then
begin
show_message('帐号已经成功创建,祝您游戏快乐!',suiInformation);
Bt_Close.Click;
end;
if msg.Comm = SM_AddNewId_Fail then
begin
if msg.param=1 then
begin
show_message('帐号、密码等不能少于5位',suiInformation);
Edit_ID.SetFocus;
end;
if msg.param=2 then
begin
show_message('该帐号已经存在,请换个帐号!',suiInformation);
Edit_ID.SetFocus;
end;
if msg.param=3 then
begin
show_message('帐号创建失败,请检查您输入的内容是否包含非法字符!',suiInformation);
Edit_ID.SetFocus;
end;
end;
CSocket.Close;
suiStatusBar1.Panels[0].Text:='断开连接。';
end;
procedure TFrm_AddNewId.FormCreate(Sender: TObject);
begin
SetForm_Style(suiForm1,ExeType);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -