Man könnte es natürllich auch gleich so machen, wie Borland es in der
VCL macht:
Delphi-Quellcode:
protected
procedure DoConnect; virtual;
public
function Connect(const Timeout: Integer = -1): Boolean;
property OnConnect: TNotifyEvent read FOnConnect write FOnConnect; // kein Setter
...
end;
function TClientSocket.Connect(const Timeout: Integer = -1): Boolean;
begin
// ...
DoConnect;
end;
procedure TClientSocket.DoConnect;
begin
if Assigned(FOnConnect) then
FOnConnect(Self)
else
begin
// Default
end;
end;
Das ermöglicht auch einer abgeleiteten Klasse, das "Default"-Verhalten zu ändern.