Zitat von
BAMatze:
Das ist schonmal gut zu wissen. Meine Erfahrung besteht ja eigentlich nur daraus, dass ich einige Varianten hier aus der
DP genommen hab, die ich gefunden (oder genannt bekommen) habe und dann ausprobiert (wobei meistens noch mindestens so viele Fehler aufgetreten sind, dass ich hier nochmal nachfragen musste). Habe dich jetzt so verstanden, dass ich meine Komponente wie folgt abändern sollte:
Naja, falsch ist es nicht aber auch nicht wirklich richtig. Ich nutze immer eine do-Procedur um events zu triggern. Außerdem sollte Immer der Sender mit angegeben werden.
Delphi-Quellcode:
{$M+}
TOnTischChange = procedure(Sender: TObject) of object;
Type TTischsteuerung = class(TWinControl)
private
...
//Variablen für Events
FOnTischChange: TOnTischChange;
...
protected
// die event auslöser
procedure doTischChange;
...
published
property OnTischChange: TOnTischChange read FOnTischChange write FOnTischChange;
...
public
//alternativ könnte auch die property OnTischChange hier aufgeführt sein
...
end;
procedure TTischsteuerung.doTischChange;
begin
if Assigned(FOnTischChanged) then
FOnTischChanged(self);
end;
procedure TTischsteuerung.foo
begin
...
// Event(s) auslösen
doTischChange;
...
end;
Das Ganze sieht erstmal etwas komplizierter aus aber es bringt viele Vorteile beim erweitern oder debuggen. Außerdem macht es Borland genauso.