Konstantenauflistung (wie clGreen, clRed, ) selber erstellen
Hi!
Ich möchte für eine eigene Klasse so eine Konstantenauflistung (Enumeration?) selber machen! Das Ziel ist, Eigenschaften dann mit einem solchen Typ zu deklarieren und dann dieser entweder den Konstantenname oder über einen Index zuzuweisen! Also so, wie z. B. die Eigenschaft Color eines Controls: Sie sind vom Typ TColor und es gibt Konstanten wie clBlack, clGreen, clRed u.s.w., ich kann der Eigenschaft aber auch eine Zahl zuweisen. Ich habe es schon mit folgendem Code im type-Abschnitt probiert:
Delphi-Quellcode:
Allerdings akzeptiert Delphi es nicht, wenn ich statt Coin50 z. B. 2 auf eine TCoinTyp-deklarierte Eigenschaft zuweise.
type
TCoinTyp = (Coin10, Coin25, Coin50); Wie geht das? Vielen Dank, dartrax |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
TColor ist nicht als Set, sondern wie folgend deklariert:
Delphi-Quellcode:
Nur Zeile 3 ist von Interesse ;-)
type
PColor = ^TColor; TColor = -$7FFFFFFF-1..$7FFFFFFF; {$NODEFINE TColor} Um eine Liste an Optionen zu bieten musst Du zusätzlichen einen Property-Editor schreiben, suche mal in der DP danach, wir hatten das, glaube ich, schon mal ;) ...:cat:... |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
Hallo,
danke für die schnelle Antwort! Ich habe jetzt "{$NODEFINE TCoinTyp}" da drunter geschrieben, aber es scheint noch nicht alles zu sein. Was muss ich denn in der Zeile darüber hinschreiben? Wo kommen die Bezeichnungen hin? Im Objektinspektor brauche ich das aber nicht. dartrax |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
Zitat:
...:cat:... |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
:wall:
(ohne Worte) dartrax |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
Hi dartrax,
meinst du etwa so was:
Delphi-Quellcode:
Greetz
type
TCoinTyp = 0..2; const Coin10 = 0; Coin25 = 1; Coin50 = 2; alcaeus |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
Ok nachdem mir wieder klar geworden ist das Auflistungen im reallife bei 1 beginnen...
... wo werden denn da die Bezeichnungen clRed usw. angegeben? Oder ist dafür dieser Property-Editor? @alcaeus: Im Prinzip ja, ich dachte nur, ich könnte die Konstanten in eine Liste zusammenfassen und mit der Variablendeklaration verknüpfen wie Enum in VB. dartrax |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
Zitat:
...:cat:... |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
Vielen Dank für eure schnellen Antworten!
Ich werde nach alcaeuss Methode verfahren. dartrax |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
Moin dartrax,
Zitat:
Delphi-Quellcode:
var
MyVariable : TCoinTyp; begin MyVariable := TCoinTyp(2); ... end; |
Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
Hallo Christian,
Vielen Dank für deinen Tipp, so geht es nun endlich wie erwartet! Hatte das auch mal ausprobiert, allerdings Int() statt Integer() beim umgekehrten Typecast verwendet...+ dartrax |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 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