Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Klassen-Eigenschaft überladen? (https://www.delphipraxis.net/85750-klassen-eigenschaft-ueberladen.html)

oki 4. Feb 2007 12:13


Klassen-Eigenschaft überladen?
 
Hi Leute,

auch wenn die Frage blöd sein sollte will ich sie stellen. Sollte es eine Möglichkeit dafür geben spaare ich mir ne Menge Arbeit.

Folgende Situation:

Ich habe mir eine Basisklasse (TBaseControl) geschrieben, die eine Object-Liste abgeleitet von TObjectList als Eigenschaft hällt.
Nun habe ich einen Nachfahren von TBaseControl, der eine Erweiterte Klasse meiner TObjectList halten soll. Nun soll diese erweiterte Klasse TObjectList die alte ObjectList überschreiben.

Huch, nun ist mir eingefallen wie das geht.

Nicht neue Eigenschaft hinzufügen, sondern im Create der neuen BaseControl das Create der Liste einfach mi neuem Klassennamen aufrufen.

Wie gut es doch ist seinen Fragen aufzuschreiben. Alte Regel, 90% der Probleme lösen sich von selbst. Sollte noch jemand eine Idee dazu haben, dann bin ich trotzdem interessiert.

Gruß oki

oki 4. Feb 2007 12:19

Re: Klassen-Eigenschaft überladen?
 
Hi,

nun taucht natürlich folgendes Problem auf. Will ich auf die erweiterten Funktionen meiner abgeleiteten Objetliste zugreifen, so kennt er diese natürlich nicht und ich muß jedes mal ein blödes Typecasting aufrufen.

Hat jetzt doch einer ne Idee?

GuenterS 4. Feb 2007 12:58

Re: Klassen-Eigenschaft überladen?
 
Hast Du schon versucht das Property Neu zu definieren (mit selben Namen) aber dem neuen Typ?

oki 4. Feb 2007 13:07

Re: Klassen-Eigenschaft überladen?
 
Hi GuenterS,

ja hab ich vorher so gehabt. Da ging gar nichts. Erstaunlicherweise hat der Compiler nicht gemeckert. Der Effekt war folgender:

im neuen Object die erweiterte Liste mit werten gefüllt. Von außen mit Basisobject-Instanz daraufzugegriffen; Liste leer.

Nach der neuen Methode klappts. Stört nur das Typecasting.

Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz