ReadThinClient学习(一)

比较简单的DEMO学习

服务端代码

View Code
unit RtcHttpServer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, StdCtrls, ComCtrls, rtcInfo, rtcConn, rtcDataSrv, rtcHttpSrv,
  rtcFunction, rtcSrvModule;

type
  TMsgType = (mtOK, mtHelp, mtErr);

  TrtcHttpServerDemo = class(TForm)
    RtcHttpServer1: TRtcHttpServer;
    ListView1: TListView;
    Button1: TButton;
    Button2: TButton;
    ImageList1: TImageList;
    RtcFunctionGroup1: TRtcFunctionGroup;
    RtcFunction1: TRtcFunction;
    RtcServerModule1: TRtcServerModule;
    procedure Button1Click(Sender: TObject);
    procedure RtcHttpServer1Connect(Sender: TRtcConnection);
    procedure RtcHttpServer1Connecting(Sender: TRtcConnection);
    procedure RtcHttpServer1Disconnect(Sender: TRtcConnection);
    procedure RtcHttpServer1ListenStart(Sender: TRtcConnection);
    procedure RtcHttpServer1SessionClose(Sender: TRtcConnection);
    procedure RtcHttpServer1SessionOpen(Sender: TRtcConnection);
    procedure RtcHttpServer1ListenLost(Sender: TRtcConnection);
    procedure RtcFunction1Execute(Sender: TRtcConnection;
      Param: TRtcFunctionInfo; Result: TRtcValue);
  private
    procedure LogEvent(msg: String; msgType: TMsgType);
    procedure LogClear;
  public
    { Public declarations }
  end;

var
  rtcHttpServerDemo: TrtcHttpServerDemo;

implementation

{$R *.dfm}

procedure TrtcHttpServerDemo.Button1Click(Sender: TObject);
begin
 //开始监听
 RtcHttpServer1.Listen();
end;

procedure TrtcHttpServerDemo.LogClear;
begin
  //清除事件列表
  ListView1.Items.Clear;
end;

procedure TrtcHttpServerDemo.LogEvent(msg: String; msgType:TMsgType);
var
  ltIco: TListItem;
begin
   ltIco := ListView1.Items.Add;
   ltIco.SubItems.Add(msg);
   ltIco.SubItems.Add(DateTimeToStr(Now));
   //设置图标
   case msgType of
     mtOK: ltIco.StateIndex := 1;
     mtHelp: ltIco.StateIndex := 0;
     mtErr: ltIco.StateIndex := 2;
   end;

   ListView1.Scroll(10, 10);
end;


procedure TrtcHttpServerDemo.RtcFunction1Execute(Sender: TRtcConnection;
  Param: TRtcFunctionInfo; Result: TRtcValue);
begin
    with Sender as TRtcDataServer do
    begin
    //请求名字
      LogEvent('请求参数:' + Param.asString['name'], mtOK);
      Result.asString := 'Hello: ' + Param.asString['name'];
    end;
end;

procedure TrtcHttpServerDemo.RtcHttpServer1Connect(Sender: TRtcConnection);
//连接事件
begin
  LogEvent('连接成功:客户端地址:' + Sender.PeerAddr + ',当前客户端连接数'
    + IntToStr(Sender.TotalConnectionCount), mtOK);

end;

procedure TrtcHttpServerDemo.RtcHttpServer1Connecting(Sender: TRtcConnection);
begin
  LogEvent(Sender.sPeerAddr + '正在连接中...', mtOk);
end;

procedure TrtcHttpServerDemo.RtcHttpServer1Disconnect(Sender: TRtcConnection);
begin
 LogEvent(Sender.sPeerAddr + '连接断开了... 当前客户端连接数'
    + IntToStr(Sender.TotalConnectionCount - 1), mtOk);
end;

procedure TrtcHttpServerDemo.RtcHttpServer1ListenLost(Sender: TRtcConnection);
begin
  LogEvent('监听丢失:' + Sender.PeerAddr, mtErr);
end;

procedure TrtcHttpServerDemo.RtcHttpServer1ListenStart(Sender: TRtcConnection);
begin
  LogClear;
  LogEvent('服务启动中',Mtok);
end;

procedure TrtcHttpServerDemo.RtcHttpServer1SessionClose(Sender: TRtcConnection);
begin
  LogEvent('会话已关闭',MtErr);
end;

procedure TrtcHttpServerDemo.RtcHttpServer1SessionOpen(Sender: TRtcConnection);
begin
  LogEvent('会话已成功连接',MtErr);
end;

end.

服务端DFM

View Code
object rtcHttpServerDemo: TrtcHttpServerDemo
  Left = 0
  Top = 0
  Caption = 'FrmrtcHttpServerDemo'
  ClientHeight = 202
  ClientWidth = 389
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object ListView1: TListView
    Left = 0
    Top = 0
    Width = 389
    Height = 150
    Align = alTop
    BevelOuter = bvRaised
    Columns = <
      item
      end
      item
        Caption = #20107#20214
      end
      item
        Caption = #21457#29983#26102#38388
      end>
    FlatScrollBars = True
    GridLines = True
    Groups = <
      item
        GroupID = 0
        State = [lgsNormal]
        HeaderAlign = taLeftJustify
        FooterAlign = taLeftJustify
        TitleImage = -1
      end
      item
        Header = '333'
        GroupID = 1
        State = [lgsNormal]
        HeaderAlign = taLeftJustify
        FooterAlign = taLeftJustify
        TitleImage = -1
      end
      item
        GroupID = 2
        State = [lgsNormal]
        HeaderAlign = taLeftJustify
        FooterAlign = taLeftJustify
        TitleImage = -1
      end>
    IconOptions.Arrangement = iaLeft
    LargeImages = ImageList1
    RowSelect = True
    SmallImages = ImageList1
    TabOrder = 0
    ViewStyle = vsReport
    ExplicitLeft = -32
    ExplicitTop = 8
  end
  object Button1: TButton
    Left = 8
    Top = 156
    Width = 75
    Height = 25
    Caption = 'Start'
    TabOrder = 1
    OnClick = Button1Click
  end
  object Button2: TButton
    Left = 104
    Top = 156
    Width = 75
    Height = 25
    Caption = 'Stop'
    TabOrder = 2
  end
  object RtcHttpServer1: TRtcHttpServer
    ServerPort = '9899'
    OnConnecting = RtcHttpServer1Connecting
    OnConnect = RtcHttpServer1Connect
    OnDisconnect = RtcHttpServer1Disconnect
    OnListenStart = RtcHttpServer1ListenStart
    OnListenLost = RtcHttpServer1ListenLost
    OnSessionOpen = RtcHttpServer1SessionOpen
    OnSessionClose = RtcHttpServer1SessionClose
    Left = 176
    Top = 96
  end
  object ImageList1: TImageList
    Left = 296
    Top = 104
    Bitmap = {
      494C010103000800100010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000001000000001002000000000000010
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFD0D0D000B7B7B700ADADAD00BABABA00D4D4D400FFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000FCFCFC00EDEDED00D1D1D100B8B8B800AEAEAE00BBBBBB00D5D5D500F1F1
      F100FEFEFE00000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFD0D0D000B7B7B700ADADAD00BABABA00D4D4D400FFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFC7C7C700848484005D5D5D00615B5700716153005D5956005F5F5F008C8C
      8C00CECECE00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000F4F4
      F400C8C8C800858585005E5E5E0058635A0055725C00575F5900606060008D8D
      8D00CFCFCF00F7F7F7000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFC7C7
      C700848484005D5D5D00575761005353710056565D005F5F5F008C8C8C00CECE
      CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFABAB
      AB005E5C5B00956D4F00A66B3B00C2570600C2570600C2570600A76B3D008E6B
      4D0062626200B6B6B600FFFFFFFFFFFFFFFF0000000000000000EEEEEE00ACAC
      AC005C5F5D0050975F003DA854003BAB520039BA52003BA953003FA956004F90
      5D0063636300B7B7B700F2F2F20000000000FFFFFFFFFFFFFFFFABABAB005B5B
      5E004F4F95003B3DA600393CA900383DB800393BA7003D3FA7004D4F8E006262
      6200B6B6B600FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFADADAD005D59
      5500A76B3F00C8692A00C6511200BE4C1100BA4A1000BE4B1000C6541400C56B
      2E00A66E4300615D5900BFBFBF00FFFFFFFF00000000F6F6F600AEAEAE00565F
      580040A956002CCA490014C82B0011BE270010BA250010BE250016C82F0030C7
      4B0044A859005A635C00C0C0C000FAFAFA00FFFFFFFFADADAD0055555D003F40
      A7002A33C8001225C6001123BE001022BA001023BE001424C6002E36C5004344
      A60059596100BFBFBF00FFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFD5D5D50068636000A468
      3600CF591500B64C1000AE481000AD481100AD471000AD481100AE481000B84C
      1000D35E1800A568390077727000FFFFFFFF00000000D6D6D600616A620038A6
      510017D1330010B627000EAE25000FAD25000EAD230011AD260010AE260010B8
      280019D537003BA7520071787200E4E4E400D5D5D500606068003638A4001524
      CF00101FB600101FAE001120AD001020AD001120AD00101FAE00101FB8001825
      D300393BA50070717700FFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFA8A8A8009F663C00D461
      1A00B54C1000B04A1000AD521000C6865800FFFFFF00C6855800AD521100AD52
      1100B74D1000C869280090644100B9B9B900FDFDFD00A9A9A9003DA152001BD6
      3B0010B528000EB026000EB02600000000000EB026000EB0260010B0270010B0
      270010B7290029CA480042925400BABABA00A8A8A8003C3D9F001A25D400101E
      B500101EB000101EB000101EB000101EB000101EB000101EB000101EB000101E
      B700282EC80041419000B9B9B900FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFF8C7C7100B26B3900C253
      1000B34F1100B34E1100B054100093460D004F26070093460D00B0541000B053
      0E00B34D1000C9561100A667380098918C00F6F6F600728E79003AB4530010C2
      2C000FB32A000FB328000000000000000000000000000EB428000FB32A0011B3
      2C0010B3290011C92E0039A851008D9A900071718C00393DB200101DC200111C
      B300111DB300FFFFFF00C4C6E100101CB300C4C7E100FFFFFF00111CB300101C
      B300111FC9003839A6008C8C9800FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFF926E5300CC733400B951
      1100B6511000B7511000B3591100BB682800FFFFFF00C1763B00B4571000B456
      0E00B6511000BF561300C4753A0093796500EDEDED005494610036CE530011B9
      2D000EB62B0000000000000000000000000000000000000000000FB72C000EB7
      2B0010B62D0013BF31003CC658006795720053539200343ACC00111CB900101A
      B600101AB700C3C4D400FFFFFF00C5C6E200FFFFFF00C3C4D400101AB700101A
      B600131DBF003A3DC40065659300FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFF9C6F4C00D77C3A00BC56
      1400BA531000BA541000A3510E00A3510E00D4C7C200FFFFFF00C57C3F00BE66
      1500BA551100BD5A1800D27D3E009B795D00EFEFEF004D9E5F003CDA5C0014BC
      32000EBA2C000000000000000000008115000000000000000000000000000FBA
      2E000FBA2E0018BD360040D45F005E9D6C004C4D9C003A3FD700141DBC001019
      BA001018BA000A0F7300C3C4D400FFFFFF00C3C4D5000A0F73001119BA001119
      BA001820BD003E42D2005D5D9B00FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFA0755300D8874A00C566
      2100BD581100BD571000BA5E1000BA5E100086460C00D4C7C200FFFFFF00BE65
      1500BD561100C8692700CD834A00A1816800F8F8F80055A266004CDB690021C5
      42000FBD300000831600008316000FBD30000083160000000000000000000000
      00000FBD2F0027C846004BCF68006AA376005353A0004A4DD8002126C5001118
      BD001017BD00C5C6E300FFFFFF00C3C4D500FFFFFF00C4C6E3001117BD001119
      BD00272DC8004A4BCD00686AA100FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFAC8B7000C9875300D57E
      3D00C3601800C05C1100FFFFFF00D4C7C20089470C00D2C1B800FEFEFE00BD65
      1500C4641C00DB884700B97E4E00B9A49200FEFEFE0071AE7F0055CB70003DD5
      5D0018C33B0011C0350010C0340011C035000EC0310000851600000000000000
      000019C43B0047DB670050BB680094BB9D007070AC005354C9003D40D500181D
      C3001115C000FFFFFF00C3C4D5000A0D7600C3C4D500FFFFFF001116C0001C20
      C4004749DB004E4EB9009294B900FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFD7CEC800A9714200EFA7
      6D00D27E3B00C7651C00572E0800FFFFFF00F7ECE200F8EEE500A78C7700BE59
      0D00D6824000F0A97100A3653500FFFFFFFF00000000C9D9CC0044AB5C006DEF
      8B003BD25D001CC73F0013C4390011C3370010C235000EC33200028718000A8A
      1F003AD55A0073F2900037A55000EDEDED00C8C8D7004242A9006D6DEF003B3C
      D2001C20C7000A0C6A000A0C78001014C2000A0C78000A0C6A002021C8004042
      D6007171F0003536A300FFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFB2896700C990
      6000EDAC7300DB8D4D00CE7F2F00955B21006C3F140094591F00D1712700DB86
      4200F0B07900BE875A00BA977C00FFFFFFFF00000000FAFAFA0069B47A0061CB
      7B0073ED91004DDB6E0035D259002BCE510027CD4B002ACE4F0036D25B0052DD
      720079F096005CC173007EBC8C00FEFEFE00FFFFFFFF6767B2006160C9007573
      ED004D4DDB003535D2002B2BCE002729CD002A2BCE003736D2005252DD007B79
      F0005A5ABE007C7CBA00FFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFAC79
      4F00CC956600F6BE8A00EBAF7600E6A46800E4A06400E6A46900EDB07900F7C0
      8C00C58F6000B2856100FFFFFFFFFFFFFFFF0000000000000000ECF2ED0050AE
      650068CE81008AF6A70076EB950068E6880064E4840069E6890079ED97008CF7
      A90062C77A0062B47400F8F8F80000000000FFFFFFFFFFFFFFFF4F4FAC006766
      CC008E8AF6007A76EB006B68E6006764E4006C69E6007C79ED00908CF7006260
      C5006161B200FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFB5876400B8835700DDA97B00F2BF8E00F1BD8D00F1BF8F00DAA57700B37D
      5100BA906F00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000EBF2
      ED0065B7770059BA70007DDF950090F4AB008FF3AA0091F3AA0078DC920053B5
      690071BC8200F7F9F7000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF6464
      B5005757B8007D7BDD00928EF200908DF100928FF1007977DA005151B3006F6F
      BA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFDECCBE00BB916E00A9714300A9704300A9714400BE977800E4D6
      CA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      000000000000BFE0C70070BD810045AB5C0045AB5C0046AB5C0079C08A00CBE6
      D10000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFBEBFDE006E70BB004344A9004343A9004446A9007878BE00CACAE400FFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000100000000100010000000000800000000000000000000000
      000000000000000000000000FFFFFF000000F007000000000000E00300000000
      0000C00100000000000080000000000000008000000000000000010000000000
      0000038000000000000007C000000000000006E0000000000000007000000000
      0000003000000000000080000000000000008000000000000000C00100000000
      0000E003000000000000F80F00000000}
  end
  object RtcFunctionGroup1: TRtcFunctionGroup
    Left = 152
    Top = 40
  end
  object RtcFunction1: TRtcFunction
    Group = RtcFunctionGroup1
    FunctionName = 'SimpleTest'
    OnExecute = RtcFunction1Execute
    Left = 32
    Top = 40
  end
  object RtcServerModule1: TRtcServerModule
    Server = RtcHttpServer1
    ModuleFileName = '/mytest'
    FunctionGroup = RtcFunctionGroup1
    Left = 48
    Top = 96
  end
end

客户端代码

View Code
unit RtcClient;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, rtcConn, rtcDataCli, rtcHttpCli, rtcInfo, rtcFunction, StdCtrls,
  ExtCtrls, ComCtrls, ImgList, rtcCliModule;

type

  TMsgType = (mtOK, mtHelp, mtErr);

  TfrmRtcHttpClient = class(TForm)
    RtcFunction1: TRtcFunction;
    RtcHttpClient1: TRtcHttpClient;
    ListView1: TListView;
    Panel1: TPanel;
    Button1: TButton;
    ImageList1: TImageList;
    RtcClientModule1: TRtcClientModule;
    RtcFunctionGroup1: TRtcFunctionGroup;
    Button2: TButton;
    RtcResult1: TRtcResult;
    edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure RtcHttpClient1ConnectError(Sender: TRtcConnection; E: Exception);
    procedure RtcHttpClient1ConnectFail(Sender: TRtcConnection);
    procedure RtcFunction1Execute(Sender: TRtcConnection;
      Param: TRtcFunctionInfo; Result: TRtcValue);
    procedure edit1KeyPress(Sender: TObject; var Key: Char);
    procedure RtcResult1Return(Sender: TRtcConnection; Data, Result: TRtcValue);
    procedure RtcHttpClient1Connect(Sender: TRtcConnection);
  private
    procedure LogEvent(msg: String; msgType: TMsgType);
    procedure LogClear;
  public
    { Public declarations }
  end;

var
  frmRtcHttpClient: TfrmRtcHttpClient;

implementation

{$R *.dfm}

procedure TfrmRtcHttpClient.Button1Click(Sender: TObject);
begin
  if RtcHttpClient1.isConnected
     or RtcHttpClient1.isConnecting then
    exit;
  RtcHttpClient1.Connect();
end;

procedure TfrmRtcHttpClient.edit1KeyPress(Sender: TObject; var Key: Char);
begin
  //发送请求
  if key = #13 then begin
    with RtcClientModule1, Data do
    begin
      with NewFunction('SimpleTest') do begin
        asString['name'] := edit1.Text;
        Call(RtcResult1);
      end;
    end;
  end;


end;

procedure TfrmRtcHttpClient.LogClear;
begin
  ListView1.Items.Clear;
end;

procedure TfrmRtcHttpClient.LogEvent(msg: String; msgType: TMsgType);
var
  ltIco, ltEvent, ltDate: TListItem;
begin
   ltIco := ListView1.Items.Add;
   ltIco.SubItems.Add(msg);
   ltIco.SubItems.Add(DateTimeToStr(Now));
   //设置图标
   case msgType of
     mtOK:   ltIco.StateIndex := 1;
     mtHelp: ltIco.StateIndex := 0;
     mtErr: ltIco.StateIndex := 2;
   end;

   ListView1.Scroll(10, 10);
end;

procedure TfrmRtcHttpClient.RtcFunction1Execute(Sender: TRtcConnection;
  Param: TRtcFunctionInfo; Result: TRtcValue);
begin
  Param.asString['name'] := 'pengshaomin';
  LogEvent('服务器响应:' + Result.asString, mtOK);
end;

procedure TfrmRtcHttpClient.RtcHttpClient1Connect(Sender: TRtcConnection);
begin
   LogEvent('连接服务器[' + Sender.sServerAddr +']成功', mtOK);
end;

procedure TfrmRtcHttpClient.RtcHttpClient1ConnectError(Sender: TRtcConnection;
  E: Exception);
begin
  LogEvent('连接服务器[' + Sender.sServerAddr +']错误', mtErr);
end;

procedure TfrmRtcHttpClient.RtcHttpClient1ConnectFail(Sender: TRtcConnection);
begin
 LogEvent('连接服务器[' + Sender.sServerAddr +']失败', mtErr);
end;

procedure TfrmRtcHttpClient.RtcResult1Return(Sender: TRtcConnection; Data,
  Result: TRtcValue);
begin

  with Sender as TRtcDataClient do
  begin
     LogEvent( (Sender as TRtcDataClient).sServerAddr  + '服务器:' + Result.asString, mtOK);
  end;
end;

end.

客户端DFM

object frmRtcHttpClient: TfrmRtcHttpClient
  Left = 0
  Top = 0
  Caption = 'frmRtcHttpClient'
  ClientHeight = 286
  ClientWidth = 447
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object ListView1: TListView
    Left = 0
    Top = 0
    Width = 447
    Height = 201
    Align = alClient
    BevelOuter = bvRaised
    Columns = <
      item
      end
      item
        Caption = #20107#20214
      end
      item
        Caption = #21457#29983#26102#38388
      end>
    FlatScrollBars = True
    GridLines = True
    Groups = <
      item
        GroupID = 0
        State = [lgsNormal]
        HeaderAlign = taLeftJustify
        FooterAlign = taLeftJustify
        TitleImage = -1
      end
      item
        Header = '333'
        GroupID = 1
        State = [lgsNormal]
        HeaderAlign = taLeftJustify
        FooterAlign = taLeftJustify
        TitleImage = -1
      end
      item
        GroupID = 2
        State = [lgsNormal]
        HeaderAlign = taLeftJustify
        FooterAlign = taLeftJustify
        TitleImage = -1
      end>
    IconOptions.Arrangement = iaLeft
    StateImages = ImageList1
    TabOrder = 0
    ViewStyle = vsReport
    ExplicitLeft = -8
    ExplicitTop = 32
  end
  object Panel1: TPanel
    Left = 0
    Top = 201
    Width = 447
    Height = 85
    Align = alBottom
    TabOrder = 1
    ExplicitLeft = 8
    ExplicitTop = 159
    ExplicitWidth = 185
    ExplicitHeight = 41
    object Button1: TButton
      Left = 16
      Top = 28
      Width = 75
      Height = 25
      Caption = 'connect'
      TabOrder = 0
      OnClick = Button1Click
    end
    object Button2: TButton
      Left = 97
      Top = 28
      Width = 112
      Height = 25
      Caption = 'function execute'
      TabOrder = 1
    end
    object edit1: TEdit
      Left = 1
      Top = 1
      Width = 445
      Height = 21
      Align = alTop
      TabOrder = 2
      OnKeyPress = edit1KeyPress
      ExplicitLeft = 200
      ExplicitTop = 16
      ExplicitWidth = 121
    end
  end
  object RtcFunction1: TRtcFunction
    Group = RtcFunctionGroup1
    FunctionName = 'SimpleTest'
    OnExecute = RtcFunction1Execute
    Left = 128
    Top = 112
  end
  object RtcHttpClient1: TRtcHttpClient
    ServerAddr = '192.168.1.57'
    ServerPort = '9899'
    OnConnect = RtcHttpClient1Connect
    OnConnectFail = RtcHttpClient1ConnectFail
    OnConnectError = RtcHttpClient1ConnectError
    Left = 40
    Top = 48
  end
  object ImageList1: TImageList
    Left = 384
    Top = 24
    Bitmap = {
      494C010103000800140010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000001000000001002000000000000010
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFD0D0D000B7B7B700ADADAD00BABABA00D4D4D400FFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000FCFCFC00EDEDED00D1D1D100B8B8B800AEAEAE00BBBBBB00D5D5D500F1F1
      F100FEFEFE00000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFD0D0D000B7B7B700ADADAD00BABABA00D4D4D400FFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFC7C7C700848484005D5D5D00615B5700716153005D5956005F5F5F008C8C
      8C00CECECE00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000F4F4
      F400C8C8C800858585005E5E5E0058635A0055725C00575F5900606060008D8D
      8D00CFCFCF00F7F7F7000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFC7C7
      C700848484005D5D5D00575761005353710056565D005F5F5F008C8C8C00CECE
      CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFABAB
      AB005E5C5B00956D4F00A66B3B00C2570600C2570600C2570600A76B3D008E6B
      4D0062626200B6B6B600FFFFFFFFFFFFFFFF0000000000000000EEEEEE00ACAC
      AC005C5F5D0050975F003DA854003BAB520039BA52003BA953003FA956004F90
      5D0063636300B7B7B700F2F2F20000000000FFFFFFFFFFFFFFFFABABAB005B5B
      5E004F4F95003B3DA600393CA900383DB800393BA7003D3FA7004D4F8E006262
      6200B6B6B600FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFADADAD005D59
      5500A76B3F00C8692A00C6511200BE4C1100BA4A1000BE4B1000C6541400C56B
      2E00A66E4300615D5900BFBFBF00FFFFFFFF00000000F6F6F600AEAEAE00565F
      580040A956002CCA490014C82B0011BE270010BA250010BE250016C82F0030C7
      4B0044A859005A635C00C0C0C000FAFAFA00FFFFFFFFADADAD0055555D003F40
      A7002A33C8001225C6001123BE001022BA001023BE001424C6002E36C5004344
      A60059596100BFBFBF00FFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFD5D5D50068636000A468
      3600CF591500B64C1000AE481000AD481100AD471000AD481100AE481000B84C
      1000D35E1800A568390077727000FFFFFFFF00000000D6D6D600616A620038A6
      510017D1330010B627000EAE25000FAD25000EAD230011AD260010AE260010B8
      280019D537003BA7520071787200E4E4E400D5D5D500606068003638A4001524
      CF00101FB600101FAE001120AD001020AD001120AD00101FAE00101FB8001825
      D300393BA50070717700FFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFA8A8A8009F663C00D461
      1A00B54C1000B04A1000AD521000C6865800FFFFFF00C6855800AD521100AD52
      1100B74D1000C869280090644100B9B9B900FDFDFD00A9A9A9003DA152001BD6
      3B0010B528000EB026000EB02600000000000EB026000EB0260010B0270010B0
      270010B7290029CA480042925400BABABA00A8A8A8003C3D9F001A25D400101E
      B500101EB000101EB000101EB000101EB000101EB000101EB000101EB000101E
      B700282EC80041419000B9B9B900FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFF8C7C7100B26B3900C253
      1000B34F1100B34E1100B054100093460D004F26070093460D00B0541000B053
      0E00B34D1000C9561100A667380098918C00F6F6F600728E79003AB4530010C2
      2C000FB32A000FB328000000000000000000000000000EB428000FB32A0011B3
      2C0010B3290011C92E0039A851008D9A900071718C00393DB200101DC200111C
      B300111DB300FFFFFF00C4C6E100101CB300C4C7E100FFFFFF00111CB300101C
      B300111FC9003839A6008C8C9800FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFF926E5300CC733400B951
      1100B6511000B7511000B3591100BB682800FFFFFF00C1763B00B4571000B456
      0E00B6511000BF561300C4753A0093796500EDEDED005494610036CE530011B9
      2D000EB62B0000000000000000000000000000000000000000000FB72C000EB7
      2B0010B62D0013BF31003CC658006795720053539200343ACC00111CB900101A
      B600101AB700C3C4D400FFFFFF00C5C6E200FFFFFF00C3C4D400101AB700101A
      B600131DBF003A3DC40065659300FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFF9C6F4C00D77C3A00BC56
      1400BA531000BA541000A3510E00A3510E00D4C7C200FFFFFF00C57C3F00BE66
      1500BA551100BD5A1800D27D3E009B795D00EFEFEF004D9E5F003CDA5C0014BC
      32000EBA2C000000000000000000008115000000000000000000000000000FBA
      2E000FBA2E0018BD360040D45F005E9D6C004C4D9C003A3FD700141DBC001019
      BA001018BA000A0F7300C3C4D400FFFFFF00C3C4D5000A0F73001119BA001119
      BA001820BD003E42D2005D5D9B00FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFA0755300D8874A00C566
      2100BD581100BD571000BA5E1000BA5E100086460C00D4C7C200FFFFFF00BE65
      1500BD561100C8692700CD834A00A1816800F8F8F80055A266004CDB690021C5
      42000FBD300000831600008316000FBD30000083160000000000000000000000
      00000FBD2F0027C846004BCF68006AA376005353A0004A4DD8002126C5001118
      BD001017BD00C5C6E300FFFFFF00C3C4D500FFFFFF00C4C6E3001117BD001119
      BD00272DC8004A4BCD00686AA100FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFAC8B7000C9875300D57E
      3D00C3601800C05C1100FFFFFF00D4C7C20089470C00D2C1B800FEFEFE00BD65
      1500C4641C00DB884700B97E4E00B9A49200FEFEFE0071AE7F0055CB70003DD5
      5D0018C33B0011C0350010C0340011C035000EC0310000851600000000000000
      000019C43B0047DB670050BB680094BB9D007070AC005354C9003D40D500181D
      C3001115C000FFFFFF00C3C4D5000A0D7600C3C4D500FFFFFF001116C0001C20
      C4004749DB004E4EB9009294B900FFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFD7CEC800A9714200EFA7
      6D00D27E3B00C7651C00572E0800FFFFFF00F7ECE200F8EEE500A78C7700BE59
      0D00D6824000F0A97100A3653500FFFFFFFF00000000C9D9CC0044AB5C006DEF
      8B003BD25D001CC73F0013C4390011C3370010C235000EC33200028718000A8A
      1F003AD55A0073F2900037A55000EDEDED00C8C8D7004242A9006D6DEF003B3C
      D2001C20C7000A0C6A000A0C78001014C2000A0C78000A0C6A002021C8004042
      D6007171F0003536A300FFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFB2896700C990
      6000EDAC7300DB8D4D00CE7F2F00955B21006C3F140094591F00D1712700DB86
      4200F0B07900BE875A00BA977C00FFFFFFFF00000000FAFAFA0069B47A0061CB
      7B0073ED91004DDB6E0035D259002BCE510027CD4B002ACE4F0036D25B0052DD
      720079F096005CC173007EBC8C00FEFEFE00FFFFFFFF6767B2006160C9007573
      ED004D4DDB003535D2002B2BCE002729CD002A2BCE003736D2005252DD007B79
      F0005A5ABE007C7CBA00FFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFAC79
      4F00CC956600F6BE8A00EBAF7600E6A46800E4A06400E6A46900EDB07900F7C0
      8C00C58F6000B2856100FFFFFFFFFFFFFFFF0000000000000000ECF2ED0050AE
      650068CE81008AF6A70076EB950068E6880064E4840069E6890079ED97008CF7
      A90062C77A0062B47400F8F8F80000000000FFFFFFFFFFFFFFFF4F4FAC006766
      CC008E8AF6007A76EB006B68E6006764E4006C69E6007C79ED00908CF7006260
      C5006161B200FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFB5876400B8835700DDA97B00F2BF8E00F1BD8D00F1BF8F00DAA57700B37D
      5100BA906F00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000EBF2
      ED0065B7770059BA70007DDF950090F4AB008FF3AA0091F3AA0078DC920053B5
      690071BC8200F7F9F7000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF6464
      B5005757B8007D7BDD00928EF200908DF100928FF1007977DA005151B3006F6F
      BA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFDECCBE00BB916E00A9714300A9704300A9714400BE977800E4D6
      CA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      000000000000BFE0C70070BD810045AB5C0045AB5C0046AB5C0079C08A00CBE6
      D10000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFBEBFDE006E70BB004344A9004343A9004446A9007878BE00CACAE400FFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000100000000100010000000000800000000000000000000000
      000000000000000000000000FFFFFF000000F007000000000000E00300000000
      0000C00100000000000080000000000000008000000000000000010000000000
      0000038000000000000007C000000000000006E0000000000000007000000000
      0000003000000000000080000000000000008000000000000000C00100000000
      0000E003000000000000F80F0000000000000000000000000000000000000000
      000000000000}
  end
  object RtcClientModule1: TRtcClientModule
    Client = RtcHttpClient1
    AutoSessions = True
    ModuleFileName = '/mytest'
    FunctionGroup = RtcFunctionGroup1
    Left = 40
    Top = 112
  end
  object RtcFunctionGroup1: TRtcFunctionGroup
    Left = 144
    Top = 40
  end
  object RtcResult1: TRtcResult
    OnReturn = RtcResult1Return
    Left = 216
    Top = 48
  end
end

  

原文地址:https://www.cnblogs.com/pengshaomin/p/2718579.html