AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variable Klassen von Objekteigenschaften

Ein Thema von Zacherl · begonnen am 24. Nov 2007 · letzter Beitrag vom 24. Nov 2007
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Variable Klassen von Objekteigenschaften

  Alt 24. Nov 2007, 14:32
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:
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;
Ist sowas überhaupt möglich? Wenn ja weiß jemand wie?

Gruß
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Variable Klassen von Objekteigenschaften

  Alt 24. Nov 2007, 14:35
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Variable Klassen von Objekteigenschaften

  Alt 24. Nov 2007, 14:36
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...
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Variable Klassen von Objekteigenschaften

  Alt 24. Nov 2007, 14:38
Okey danke für eure Hilfe, dann werde ich wohl abgeleitete Klassen verwenden müssen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08: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