![]() |
Delphi-Version: XE
Enumeration als Parameter übergeben
Hallo,
ich möchte gerne folgendes realisieren: In einer projektübergreifenden Unit soll eine Klasse für den Registry-Zugriff implementiert werden, mit den entsprechenden Getter/Setter-Funktionen für den Registry-Zugriff (Lesen/Schreiben), basierend auf Indexbezeichner. Im Projekt soll eine davon abgeleitete Klasse definiert werden, in welcher dann die projektspezifischen Properties mittels Indexbezeichner definiert werden. Als Indexbezeichner soll dabei eine Enumeration zum Einsatz kommen. In der Basis-Klasse soll aus der Enumeration mittels GetEnumName der entsprechende Bezeichner ermittelt und als Name für den Registry-Eintrag verwendet werden. Wie kann ich jetzt die pro Projekt verschiedenen Enumerations z.B. im Konstruktor an die Basis-Klasse übergeben? Vielen Dank für jeden Hinweis. Mit freundlichen Grüßen Marco |
AW: Enumeration als Parameter übergeben
Wie wäre es mit Generics?
Delphi-Quellcode:
Und so weiter. So kannst du in der Basisklasse den Typ offen lassen und erst bei der konkreten Klasse von der entsprechend typisierten Klasse ableiten.
type
TBaseClass<T> = class public constructor Create(MyParam: T); end; // andere Unit: TTestClass1 = class(TBaseClass<TMyEnum1>) end; |
AW: Enumeration als Parameter übergeben
Hallo,
als D5 Umsteiger waren mir die Generics noch nicht geläufig. Hat jetzt problemlos damit funktioniert. Vielen Dank für die schnelle und konstruktive Hilfe. Mit freundlichen Grüßen Marco |
AW: Enumeration als Parameter übergeben
Ansonsten hätte man noch untypisierte Parameter nehmen können (also ohne Verfügbakeit der Generics.
Delphi-Quellcode:
Wenn man jetzt davon ausgeht, daß die Enumeratoren immer maximal 256 Werte besitzen, dann könnte man dieses intern in ein Byte casten.
type
TTestClass1 = class public constructor Create(const MyParam); end; // andere Unit: TTestClass1 = class(TBaseClass) end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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