Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - case of mit Strings
Daether - Fr 19.08.05 10:35
Titel: case of mit Strings
Moin,
hoffe, dass es einfach noch zu früh für mich ist und ich einfach irgendwas dämliches angestellt habe, aber warum unktioniert dieser Code nicht?
Delphi-Quelltext
1: 2: 3: 4: 5:
| case Spiel.Spielfeld[Markx,Marky].Planet.Art of 'All':begin end; 'Planetwueste':Begin end; |
Es komt immer der Fehler :Ordinaltyp erforderlich
Und Spiel.Spielfeld[Markx,Marky].Planet.Art ist ein String.
Grendel - Fr 19.08.05 10:38
Du kannst unter Delphi ein case nicht auf Strings anwenden. Geht einfach nicht. Auch wenn sich mir der Sinn dahinter noch nicht ganz erschlossen hat.
Du musst also auf if - else zurückgreifen.
Bis neulich ...
WeBsPaCe - Fr 19.08.05 10:39
Joa.
case ... of funktioniert eben nur, wenn du eine Variable auf eine Zahl abfragen willst. ;)
Musst du eben sowas machen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if Spiel.Spielfeld[Markx,Marky].Planet.Art = 'All' then begin end; if Spiel.Spielfeld[Markx,Marky].Planet.Art = 'Planetwueste' then begin end; |
;)
noidic - Fr 19.08.05 10:40
Oder du definierst dir die Art als Aufzählungstyp, dann geht das mit dem Case of wieder
WeBsPaCe - Fr 19.08.05 10:42
Wenn deine Variable allerdings nur einen der beiden Werte annehmen _kann_, dann bietet sich ein if ... then ... else natürlich an. Ist dann fast genauso kurz wie case ... of. ;)
Daether - Fr 19.08.05 10:48
erstma danke für eure Antworten.
Ich verusche die Art eines Planeten auszulesen und in ein Stringgrid zu stecken ( ist für ein Spiel ). Doch da ich später hoffentlich mehr als eine Art von Planeten habe, wollte ich das ganze mit Case of veruschen :) .
Delete - Fr 19.08.05 10:58
CASE MIT STRING hatten wir schon oft genug, einfach mal suchen.
noidic - Fr 19.08.05 11:00
In dem Fall würde ich tatsächlich einen Aufzählungstypen benutzen. Ist zwar im ersten Schritt mehr Arbeit, weil du noch was bauen musst, was dir den Aufzählungstyp für die Ausgabe in Strings umwandelt und ggfls. umgekehrt ( nen Array bietet sich da an ), dafür ist das aber hinterher durchsichtiger im Code und vor allem werden Tippfehler schon beim Kompilieren entdeckt, nicht erst dadurch, das das Programm nicht das tut was es soll und man sich schon die Augen wund gesucht hat....
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!