Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Indy und Wiedervervendung von procedure

  Alt 1. Mär 2013, 10:24
Es ist vieleicht wichtig welche Indy-Version überhaupt verwendet wird.

Bei Indy-9 ist das Event so deklariert:
Delphi-Quellcode:
  TIdServerThreadEvent = procedure(AThread: TIdPeerThread) of object;
{...}
    property OnExecute: TIdServerThreadEvent read FOnExecute write FOnExecute;
Auf jeden Fall sind alle Events als "of object" vereinbart und erwarten damit die Methode einer Klasse. Also implementiere in deiner Klasse einfach die entsprechende Ereignismethode, so wie das Ereignis in deiner Version der Komponente definiert ist:
Delphi-Quellcode:
TServerAblauf = class(TObject)
protected
  FServer : TIdTcpServer;
  procedure DoExecute(AThread: TIdPeerThread);
public
  constructor Create(server : TIdTcpServer);
end;

constructor TServerAblauf.Create(server : TIdTcpServer);
begin
  inherited Create;
  FServer := server;
  // hier evtl. noch Events auf eigene Methoden richten
  FServer.OnExecute := DoExecute;
end;

procedure TServerAblauf.DoExecute(AThread: TIdPeerThread);
begin
  // Hier tun, was zu tun ist.

end;
  Mit Zitat antworten Zitat