![]() |
Variablenname mehrere Typen
So, ich weiß nicht einmal wirklich, wie ich dieses Problem benennen soll (deswegen war meine Suche erfolglos)
Ich möchte folgendes: ich möchte einem Variablennamen je nach Bedarf zwei verschiedene Veriablentypen zuweisen. In meinem Fall würde ich je nach Bedarf dem Namen "MyPopupsource" - der Parent eines TPopupcomponents - entweder TLabel oder TPanel zuweisen. Ich könnte natürlich zwei ähnliche Prozeduren schreiben, aber ich möchte das elegant lösen. Leider finde ich im Internet und diesem Forum nichts vergleichbares, darum muss ich mich direkt and euch wenden. Jemand eine Idee? |
AW: Variablenname mehrere Typen
Wenn man das kleinsten gemeinsamen Teiler benutzt, dann geht alles.
Also einen Typen, von welchem beide Klassen erben. (ganz oben ist immer TObject und dazwischen liegt oft auch TComponent) Meistens nimmt man den kleinsten Typen, welcher die nötigen Funktionen implementiert. |
AW: Variablenname mehrere Typen
Zitat:
Delphi-Quellcode:
function Divide(x, y: real): real; overload;
begin result := x / y; end; function Divide(x, y: integer): integer; overload; begin result := x div y; end; ![]() |
AW: Variablenname mehrere Typen
Zitat:
Der am meisten spezialisierte gemeinsame Vorfahre von ![]() ![]() ![]() Zitat:
|
AW: Variablenname mehrere Typen
Quatsch gelöscht!
|
AW: Variablenname mehrere Typen
Die Fragestellung deutet auf ein verbesserungswürdiges Design hin. Beschreibe doch mal, weshalb Du deine Variable -je nach Anwendungsfall- unterschiedlich deklarieren willst.
|
AW: Variablenname mehrere Typen
Genau das löst sich ja mit dem gemeinsamen Vorfahren auf ... nur noch ein Code für diesen einen Vorfahren.
|
AW: Variablenname mehrere Typen
TControl ist der erste gemeinsame Vorfahr.
Jetzt stellt sich die Frage, auf welche Methoden und Eigenschaften will der TE zugreifen? Schon "Caption" gibt es noch nicht in TControl. Und ein Zugriff auf TLabel ohne die Nutzung der Caption stelle ich mir relativ sinnlos vor. Natürlich kann man ein Typecast machen. Aber dann muss man im Source ja doch wieder unterscheiden, was man gerade benutzen möchte. Der Vorteil ist futsch. Man muss sich also auch die Frage stellen, wie sinnvoll die Nutzung des gemeinsamen Vorfahren ist. Es kann durchaus sein, dass es dadurch komplizierter wird, als 2 Variablen mit unterschiedlichem Typ zu haben. Man verliert in einem gewissen Rahmen auch die Typsicherheit. Vielleicht lohnt es sich ja auch, eine eigene Komponente dafür zu programmieren. Diese kann ja von TLabel oder TPanel abgeleitet sein. Kommt halt drauf an, was besser zur Lösung der Aufgabe passt. |
AW: Variablenname mehrere Typen
Zitat:
|
AW: Variablenname mehrere Typen
Wieso?
Wenn das Feature bereits in dem Vorfahren drin ist, dann ist das praktisch DIE Lösung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz