Zitat von
himitsu:
bei einem Objekt würde ich ein Event ja so Deklarieren
Delphi-Quellcode:
TInsightEvent = Procedure(Const Sender: IInsightItem) of Object;
Property OnInsight: TInsightEvent ...
Aber irgendwie sieht es etwas "unschön" aus, wenn ich jetzt eine Objekt-Methode in ein Interface reinmatsche.
Ich finde, das ist hier genau der richtige Weg. Das "of object" sagt ja nur etwas darüber aus, wo der Event implementiert wird und das ist letztendlich ja immer eine Klasse. Ob ich da jetzt eine Methode mit passender Signatur aber freiem Namen implementiere und diese dann dem Event zuweise, oder ein Interface implementiere und den Methodennamen mappe ist Geschmackssache. Es spricht nichts gegen den klassischen Event, auch wenn er über ein Interface gesetzt wird.
Es ist auch durchaus zulässig und sinnvoll, etwa solche Deklarationen in eine Interface-Deklaration zu packen:
procedure DoSomethingWith(AObject: TObject);
Solange man sich nicht auf
COM-Terrain begibt, besteht kein Hinderungsgrund Interfaces und Objekte zu mischen.