Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#9

Re: Interface um Componenten-Properties zu verallgemeinern?

  Alt 8. Jan 2004, 09:53
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ß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat