Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#24

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 18:42
Oh, hab gerade in die Socket-Sourcen geschaut... erstens ist es anders und zweitens als man denkt .
TServerSocket bezieht seine gesamten Client-Events von FServerSocket(TServerWinSocket). Du musst also von TServerWinSocket ableiten und dort ClientDisconnect überschreiben. Damit die neue Klasse auch verwendet wird, muss nun FServerSocket auch als diese instanziiert werden. Dazu fallen mir zwei Möglichkeiten ein:
1. Du leitest von TServerSocket ab und überschreibst den Constructor:
Delphi-Quellcode:
begin
  inherited;
  FServerSocket.Free;
  FServerSocket := TMyNewServerWinSocket.Create(INVALID_SOCKET);
end;
Finde ich allerdings nicht ganz so schön, besser ist IMO:
2. Leite von TCustomServerSocket ab, mit folgendem Constructor (Original: TServerSocket.Create):
Delphi-Quellcode:
begin
  inherited Create(AOwner);
  FServerSocket := TMyNewServerWinSocket.Create(INVALID_SOCKET); //<- Veränderung
  InitSocket(FServerSocket);
  FServerSocket.ThreadCacheSize := 10;
end;
Außerdem kopierst du den Interface-Teil von TServerSocket, was aber nicht viel ist (neue Implementierungen gibts auch nicht).

Das Ganze ist also doch nicht so trivial .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat