Noch eine Frage:
Wie verfahre ich mit den Methoden Execute und Destroy im Basisthread? Die sollen ja auch überladen werden. Deklariere ich die auch als virtuell oder lege ich da tatsächlich Methoden an mit inherited drin?
Deine abgeleiteten Klassen verhalten sich genauso wie die Vorgänger-Klasse zzgl. der Erweiterungen.
Delphi-Quellcode:
TFooBase = class
protected
procedure BaseVirtual; virtual;
end;
TFooAfterBase = class( TFooBase )
protected
procedure AfterBaseVirtual; virtual;
end;
TFooKonkret = class( TFooAfterBase )
protected
// wurde in TFooBase eingeführt
procedure BaseVirtual; override;
// wurde in TFooAfterBase eingeführt
procedure AfterBaseVirtual; override;
end;
procedure TFooBase.BaseVirtual;
begin
// man kann hier was machen
end;
procedure TFooAfterBase.AfterBaseVirtual;
begin
// man kann hier was machen
end;
procedure TFooKonkret.BaseVirtual;
begin
inherited;
// Irgendwas machen
end;
procedure TFooKonkret.AfterBaseVirtual;
begin
inherited;
// irgendwas machen
end;
Es gibt übrigens eine nette Hilfe bei der Implementierung der konkreten Klassen:
Delphi-Quellcode:
type
TMyThread = class( TThread )
// Den Cursor unter dieser Kommentar-Zeile platzieren und Strg+Leertaste drücken =8o)
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)