Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Gleichnamige Eigenschaft in verschiedenen Klassen ansprechen

  Alt 12. Aug 2016, 14:24
1) Interfaces

Im Grunde ist das ein klassischer Fall für Interfaces.
https://development.mwcs.de/tutinterfaces.html
http://www.delphipraxis.net/183702-i...-factorys.html

Allerdings verursacht das etwas Mehrarbeit und man muss überlegen, ob man sich auf die Referenzzählung einlassen will oder nicht.
Man muss sich auf jeden Fall damit auseinandersetzen, wann man mit dem Interface arbeitet und wann mit der Klasse.


2) Basisklasse

Evtl. ist es ja möglich, eine BasisklasseMitDerEigenschaft einzuführen, von der dann - nur diese beiden - Klassen abgeleitet werden.
Das wäre wohl der einfachste Fall. Scheint aber wohl hier nicht möglich zu sein.


3) RTTI

Man könnte das vorliegende Objekt mit der RTTI auch untersuchen, ob es die bestimmte Eigenschaft besitzt und diese Eigenschaft dann weiter benutzen (So ähnlich aObject.PropertyByName sozusagen.)
Das bringt auch einen gewissen Aufwand mit sich und ist ggf. nicht sehr performant.


4) casten

Wie im Ausgangspost angegeben.
Wenn das im Projekt nur an einigen Stellen und für wenige Klassen benötigt wird, ist das sicherlich (wenn 2) nicht geht) die einfachste Lösung.
Etwas Schreibarbeit verursachen alle Lösungen.
Das Casten der Objekte ist aber wohl die einfachste mit den geringsten Auswirkungen auf das Projekt.
(nebenbei: Auf das with würde ich dort verzichten und lokale Variablen einführen, da das m.E. übersichtlicher ist)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (12. Aug 2016 um 14:28 Uhr)
  Mit Zitat antworten Zitat