Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Konstantenauflistung (wie clGreen, clRed, ) selber erstellen (https://www.delphipraxis.net/33641-konstantenauflistung-wie-clgreen-clred-selber-erstellen.html)

dartrax 10. Nov 2004 15:07


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:
type
  TCoinTyp = (Coin10, Coin25, Coin50);
Allerdings akzeptiert Delphi es nicht, wenn ich statt Coin50 z. B. 2 auf eine TCoinTyp-deklarierte Eigenschaft zuweise.

Wie geht das?

Vielen Dank,
dartrax

sakura 10. Nov 2004 15:10

Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
 
TColor ist nicht als Set, sondern wie folgend deklariert:
Delphi-Quellcode:
type
  PColor = ^TColor;
  TColor = -$7FFFFFFF-1..$7FFFFFFF;
  {$NODEFINE TColor}
Nur Zeile 3 ist von Interesse ;-)

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:...

dartrax 10. Nov 2004 15:22

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

sakura 10. Nov 2004 15:23

Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
 
Zitat:

Zitat von dartrax
Ich habe jetzt "{$NODEFINE TCoinTyp}" da drunter geschrieben,

Das wäre auch Zeile 4 ;-)

...:cat:...

dartrax 10. Nov 2004 15:24

Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
 
:wall:

(ohne Worte)

dartrax

alcaeus 10. Nov 2004 15:25

Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
 
Hi dartrax,

meinst du etwa so was:

Delphi-Quellcode:
type
  TCoinTyp = 0..2;

const
  Coin10 = 0;
  Coin25 = 1;
  Coin50 = 2;
Greetz
alcaeus

dartrax 10. Nov 2004 15:36

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

sakura 10. Nov 2004 15:51

Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
 
Zitat:

Zitat von dartrax
Oder ist dafür dieser Property-Editor?

Genau dafür ist der dann ;-)

...:cat:...

dartrax 10. Nov 2004 15:59

Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
 
Vielen Dank für eure schnellen Antworten!

Ich werde nach alcaeuss Methode verfahren.

dartrax

Christian Seehase 10. Nov 2004 22:40

Re: Konstantenauflistung (wie clGreen, clRed, ) selber erste
 
Moin dartrax,

Zitat:

Zitat von dartrax
Allerdings akzeptiert Delphi es nicht, wenn ich statt Coin50 z. B. 2 auf eine TCoinTyp-deklarierte Eigenschaft zuweise.

Wie geht das?

mittels Typecast:

Delphi-Quellcode:
var
  MyVariable : TCoinTyp;

begin
  MyVariable := TCoinTyp(2);
...
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr.
Seite 1 von 2  1 2      

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