![]() |
Variable Klassen von Objekteigenschaften
Hey,
es ist möglich, dass ich anhand einer Objekteigenschaft die Klasse einer weiteren Eigenschaft ändere? Folgendes Beispiel:
Delphi-Quellcode:
type
TForumType = (ftDP, ftDF, ftDSDT);
Delphi-Quellcode:
type
TDPData = record URL: String; UserCount: Integer; Chat: String; end; TDFData = record URL: String; UserCount: Integer; NewPosts: Boolean; end; TDSDTData = record URL: String; LastVisit: TDateTime; end;
Delphi-Quellcode:
Ist sowas überhaupt möglich? Wenn ja weiß jemand wie?
type
TForum = class(TObject) private FForumType: TForumType; FDP: TDPData; FDF: TDFData; FDSDT: TDSDTData; public published property ForumType: TForumType read FForumType write FForumType; property Data: { hier dann je nach eingestelltem ForumType den entsprechenden Record } end; Gruß |
Re: Variable Klassen von Objekteigenschaften
Direkt geht es gar nicht. Workarounds sind:
1. Variante Records 2. Klassen, die alle von einer Basisklasse abgeleitet sind 3. Ab Delphi 2006: "Überrecord" mit Typfeld und implizitem Cast in die Einzeltypen, der bei falschem Typ eine Exception wirft. |
Re: Variable Klassen von Objekteigenschaften
Nein, das geht nicht, und es widerspräche auch dem Prinzip der starken Typisierung. Was allerdings möglich ist sind Klassen/Interfaces und Setter-Methoden, die je nach Selektor-Eigenschaft nur eine bestimmte Subklasse annehmen...
|
Re: Variable Klassen von Objekteigenschaften
Okey danke für eure Hilfe, dann werde ich wohl abgeleitete Klassen verwenden müssen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 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