期货量化交易客户端开源教学第九节——新用户注册

一、新用户注册界面设计:

注册时采用手机号注册,客户端发送新号注册申请由后台做审核,后台审核通过后向注册的手机号发送注册成功的消息。注册过的手机号不能再二次注册。

界面验证代码

复制代码
private
    { Private declarations }
    FVerf: AnsiString; {验证码}
    FPhone: AnsiString; {手机号}
    FTime: Integer;
  public
    { Public declarations }
    FClientSocket: TClientSocket;
    procedure logindone(returnstr: AnsiString); {处理返回结构 }
  end;

var
  FrmReg: TFrmReg;

implementation
uses
  uGlobalvariable, uTCP_Client_Service, md5jm, uLogin;

{$R *.fmx}

procedure TFrmReg.BtnOKClick(Sender: TObject);
var
  Vtcp_client_service : TTCP_client_service;
  data_stream : TMemoryStream;
  data_strstrea : TStringStream;
  restr,cmd_id: AnsiString;
begin
  if (Length(Trim(EdtPhone.Text)) <> 11) or (Trim(EdtPhone.Text) <> FPhone) then
  begin
    MessageBox(0,'手机号输入错误','提示',MB_OK + MB_ICONHAND);
    Exit;
  end;
  if Trim(EdtPWD.Text) <> Trim(EdtPWD2.Text) then
  begin
    MessageBox(0,'两次输入的密码不一致','提示',MB_OK + MB_ICONHAND);
    Exit;
  end;
  if Length(Trim(EdtName.Text)) > 4 then
  begin
    MessageBox(0,'姓名长度错误','提示',MB_OK + MB_ICONHAND);
    Exit;
  end;
  if (Trim(EdtPhone.Text) = '') or (Trim(EdtPWD.Text) = '') or
     (Trim(EdtPWD2.Text) = '') or (Trim(EdtVerf.Text) = '') or
     (Trim(EdtName.Text) = '') then
  begin
    MessageBox(0,'内容不能为空','提示',MB_OK + MB_ICONHAND);
    Exit;
  end;

  if Trim(EdtVerf.Text) <> FVerf then
  begin
    MessageBox(0,'验证码错误','提示',MB_OK + MB_ICONHAND);
    Exit;
  end;

二、新用户注册接口协议

1、 向服务端发送指令

{用户注册(301)(实盘数据库注册指令)

发送:300;用户bh;md5密码;姓名;

返回:300;0;错误提示;

300;1;注册成功!;}

{用户注册(301)(模拟数据库注册指令)

发送:301;用户bh;md5密码;姓名;

返回:301;0;错误提示;

301;1;}

2、注册发送协议:

Delphi 复制代码
BtnOK.Enabled := False;
  data_stream := TMemoryStream.Create;
  data_strstrea := TStringStream.Create;
  try
    cmd_id := '300';
    restr := cmd_id + ';' + Trim(EdtPhone.Text) + ';' +
             md5jm.MD5Print( MD5String( Trim(EdtPWD.Text) ) ) + ';' +
             Trim(EdtName.Text) + ';';
    data_strstrea.WriteString(restr);
    data_stream.LoadFromStream( data_strstrea );

    {创建TCP连接对象}
    Vtcp_client_service := TTCP_client_service.Create(nil);
    Vtcp_client_service.Socket_LB := 2;
    Vtcp_client_service.FCMD_data.LoadFromStream( data_stream ); {业务指令数据流}
    {开始连接}
    if not Vtcp_client_service.open_service then
    begin
      {启动TCP连接失败}
      ShowMessage('连接失败!');
    end;
相关推荐
Niuguangshuo2 小时前
SHEET MOS:TTS 与语音增强的开源 MOS 打分工具箱
开源
飞多学堂3 小时前
每日开源硬件精选简报 2026-09-11
驱动开发·开源·开源硬件·硬件开源·电子制作
辰域电子4 小时前
STM32项目开源:环境质量监测系统(代码+原理图+仿真)
stm32·单片机·嵌入式硬件·开源·毕业设计·proteus
Riwuarua5 小时前
从近似0基础开始FPGA开发 -- part.10 verilog-ethernet开源UDP协议栈工程学习
fpga开发·udp·开源
冬奇Lab7 小时前
一天一个开源项目(第215篇):Langflow - 可视化拖拽构建 AI 应用的低代码平台
人工智能·开源·资讯
GitCode官方7 小时前
本周 G-Star 开源项目推荐
开源·g-star·atomgit
ChampaignWolf7 小时前
YAAI 生态一周年:把 ABAP 变成 Agent 工具栈的开源组合拳
开源·abap·mcp·开源ai·yaai
MatrixOrigin8 小时前
Astra 正式开源了:面向长期复杂工作的企业级 Agent Runtime
开源·astra·矩阵起源·matrix origin·contextpipe
梦想的颜色9 小时前
【AI速览】2026 最新 开箱即用型开源成品 Agent :DeepSeek Harness 、Pi-Agent、 Opencode 横向 全面 对比
开源·agent·opencode·dsh·piagent
萧鼎10 小时前
safetensors 库的安装、核心语法与实战用法,安全保存模型权重
python·开源·教程·python库·safetensors