Hi,

i wrote a short test programm, to find out how to use the lnet unit.
And now i got some strange compiler messages. (FPC 2.2.2 for i386.)

The source Code is very short. So i just atached the hole cource code.
i got 2 compiler messsages and i think they are directly connected.

Here they are:

SCServer.lpr(46,43) Error: Wrong number of parameters specified for call to "DoOnReciveCommand" SCServer.lpr(33,21) Hint: Found declaration: TSCServer.DoOnReciveCommand(TLSocket)


Now my question:

Why does it say "Found declaration DoOnReciveCommand"? I mean it is declared 4 lines earlier. where is the difference to the procedure DoRun ?

I think the error is result of the hint.

for all who don't know the lnet unit. in this unit there is this event declaration :

> { Callback Event procedure for others }
> TLSocketEvent = procedure(aSocket: TLSocket) of object;

any ideas, why there is the hint.... or the error?

greatings
Benedikt



[SourceCode SCServer.lpr]


program SCServer;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils, CustApp, lnet
  { you can add units after this };


type

  { TSCServer }

  TSCServer = class(TCustomApplication)
  private
    TCPServer : TLTcp;
    TCPPort : integer;
    TCPIp   : string;
  protected
    procedure DoRun; override;
  public
    constructor Create(TheOwner: TComponent); override;
    destructor Destroy; override;
    procedure DoOnReciveCommand(aSocket: TLSocket);
  end;


{ TSCServer }

procedure TSCServer.DoOnReciveCommand(aSocket: TLSocket);
var
  test : string;
begin
  aSocket.GetMessage(test);
  WriteLn(test);
end;

procedure TSCServer.DoRun;
begin
  { add your program here }

  // open TCP Server
  TCPServer.OnReceive := DoOnReciveCommand;
  TCPServer.Listen(TCPPort,TCPIp);
  // Der TCP Server ist Event gesteuert.
  // wir können uns deswegen nun komplett auf die
  // höhensteuerung konzentrieren.


  // stop program loop
  Terminate;
end;

constructor TSCServer.Create(TheOwner: TComponent);
begin
  inherited Create(TheOwner);
  TCPServer := TLTcp.Create(nil);
  TCPPort := 23;
  TCPIp := LADDR_ANY;
end;

destructor TSCServer.Destroy;
begin

  TCPServer.Free;
  inherited Destroy;
end;


var
  Application: TSCServer;
begin
  Application:=TSCServer.Create(nil);
  Application.Title:='SCServer';
  Application.Run;
  Application.Free;
end.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to