Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Klassen-Konstanten (https://www.delphipraxis.net/180754-klassen-konstanten.html)

Puke 15. Jun 2014 15:58

Delphi-Version: XE5

Klassen-Konstanten
 
Moin Gemeinde,
Ich muss gewisse Strings interpretieren. Damit ich diese Interpretation in Schleifen durchführen kann, möchte ich Klassenkonstanten festlegen. Nur weiß ich nicht ob es geht und wenn wie :(.
Wie ich es mir eigentlich vorgestellt hatte:
Delphi-Quellcode:
const
  cloc_classes: Array [0..n] of tclass = (tclass1, tclass2, ...);
var
  loc_object: TObject;
begin
  loc_object := cloc_classes[1].Create;
  // ...
end;
Gibt es etwas ähnliches in Delphi?

Viele Dank und Grüße
Puke

himitsu 15. Jun 2014 16:30

AW: Klassen-Konstanten
 
Ich sag es mal so:

Warum hast du deinen gezeigten Code nicht einfach mal ausprobiert?
Man könnte überrascht werden. :roll:

sx2008 16. Jun 2014 03:01

AW: Klassen-Konstanten
 
Der Konstruktor von "tclass" muss aber virtuell sein, andernfalls werden die Konstruktoren von "tclass1" usw. nicht aufgerufen.

Dejan Vu 16. Jun 2014 06:31

AW: Klassen-Konstanten
 
Das sieht mir nach einer kleinen Klassenfabrik aus. Ich würde das aber nicht als Konstante deklarieren, sondern mir eine kleine Klasse bauen, die eine Klassenfabrik implementiert und dort die Klassen registrieren. Warum? Weil das flexibler ist. So bin ich nicht darauf beschränkt, meine Klasse über einen Index anzusprechen, sondern kann einen beliebigen Schlüssel nehmen, sei es eine Enumeration, String o.ä.

Man kann z.B. in der Klasse sicherstellen, das eine Klasse nicht doppelt registriert ist und entsprechend reagieren, wenn die Klasse nicht registriert ist. Bei einem einfachen Array und ausgeschalteter Bereichsprüfung bekommt man da Probleme.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 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