Ich muß erstmal 'ne Mütze Schlaf nehmen, vorab aber noch das:
Ich meine, das im DummyUser nicht als ILsAssociate deklarieren zu können, da ich innerhalb des DummyUser an eine ganze Reihe von Prozeduren und Eigenschaften des Dummy heranmuß, die mit dem Interface nichts zu tun haben und dort auch nicht reinkönnen. (?!)
Was ich eigentlich vorhabe: Ich habe ein ziemlich umfangreiches
Package mit eigenen Komponenten.
Dort habe ich mir nun eine herausgegriffen und ein Property vom Typ TWinControl durch ein Interface ersetzen wollen. In der gleichen
Unit sind ein ganzer Sack von zusammengesetzten Komponenten enthalten, die von genau dieser Komponente kräftigen Gebrauch machen. Und in deren Create's setze ich dann diese nunmehr umgewandelte Eigenschaft. Wenn ich also nun die Sache so angehe, wie im 1. Post gezeigt, so läßt sich das
Package nicht mehr compilieren, da der Compiler die nun vom Interface geerbte Eigenschaft in den Konstruktoren der anderen Klassen, die von der umgewandelten Komponente gebrauch machen wollen, nicht mehr kennt.
Der Vorteil wäre, dass ich bei sich ähnlichen Komponenten, mit ähnlichen Eigenschaften aber verschiedenen Vorfahren, in Komposit-Komponenten, die ihrerseits all diese ähnlichen Komponenten verwenden Bearbeitungsroutinen wie:
Delphi-Quellcode:
procedure VerpassMal(DemDingHier : ILsAssociate; DieEigenschaft : TWincontrol);
begin
DemDingHier.Associate := DieEigenschaft;
end;
verwenden könnte (ohne ewiges abgefrage nach Klassentyp etc.);
Und das wär dann wirklich eine enorme Arbeitsersparnis für mich.
Gruß