Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - enum explizit angeben?


reQuiem - Mi 27.08.08 20:59
Titel: enum explizit angeben?
hi nochmal :D hab direkt noch ne frage:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
type TDirection = (Up, Down, Left, Right);

...

case self.direction of
  Up    : XXX;
  Down  : YYY;
  Left  : ZZZ;  // fehler "kein konstanter ausdruck", siehe unten
  Right : ÄÄÄ;
end;


dummerweise gibts in self auch ne procedure mit dem namen "left", was einen compilerfehler erzeugt. kann ich das Left irgendwie explizit als die Konstante Left der Enum TDirection angeben? in VB würde man schreiben TDirection.Left, was aber leider nicht funktioniert :(

Gruß,
Niklas


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Mi 27.08.2008 um 21:16


Narses - Mi 27.08.08 23:28
Titel: Re: enum explizit angeben?
Moin!

user profile iconreQuiem hat folgendes geschrieben:
dummerweise gibts in self auch ne procedure mit dem namen "left", was einen compilerfehler erzeugt.
Ich "löse" das immer so:

Delphi-Quelltext
1:
type TDirection = (dirUp, dirDown, dirLeft, dirRight);                    
Das ist zwar so gesehen "nur" ein Workaround, aber es hilft weiter. ;)

cu
Narses


Tilman - Do 28.08.08 00:08

Du kannst in der case-Struktur die unit voranstellen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
case self.direction of
  Up    : XXX;
  Down  : YYY;
  unit1.Left  : ZZZ;  // fehler "kein konstanter ausdruck", siehe unten
  Right : ÄÄÄ;
end;


Dann sollte es funzen. Unit1 ist die unit in der TDirection deklariert ist.


reQuiem - Do 28.08.08 20:04

user profile iconTilman hat folgendes geschrieben:
Du kannst in der case-Struktur die unit voranstellen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
case self.direction of
  Up    : XXX;
  Down  : YYY;
  unit1.Left  : ZZZ;  // fehler "kein konstanter ausdruck", siehe unten
  Right : ÄÄÄ;
end;


Dann sollte es funzen. Unit1 ist die unit in der TDirection deklariert ist.


danke das funktioniert :)

topic closed.

Gruß,
Niklas