Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi case of (https://www.delphipraxis.net/35759-case.html)

alcaeus 11. Dez 2004 16:13

Re: case of
 
Hi malo,

Zitat:

Zitat von malo
@alcaeus: Die Variable "Ausgabe" und die letzte Zeile kann man sich im Grunde sparen, wenn man's gleich so macht:

das ist mir auch klar :roll:
Mir ging es darum, seinen Code ohne groessere Aenderungen zum Laufen zu bringen ;)

Greetz
alcaeus

inst666 11. Dez 2004 16:25

Re: case of
 
erstmal vielen dank!!
eine frage hab ich allerdings noch, kann man die case of funktion ueberpruefen lassen ob jmd in ein.text z.b. 'rot' eingibt ?
case .. of
'rot' : color := clRed ;
z.b. ??

alcaeus 11. Dez 2004 16:30

Re: case of
 
Nein, das geht nicht.
String ist nicht ein ordinaler Typ. Du musst also bei Stringabfragen immer mit if arbeiten:
Delphi-Quellcode:
if Farbe = 'Rot' then
  Color := clRed
else if Farbe = 'Gelb' then
  Color := clYellow
else if ...
Greetz
alcaeus

Nikolas 11. Dez 2004 16:31

Re: case of
 
Nein, wie schon gesagt erwartet Case of einen ordinalen Typ wie integer oder Byte. Ein String kannst du damit nicht auswerten, da musst du if benutzen.

inst666 11. Dez 2004 16:33

Re: case of
 
das hab ich mir auch gedacht, allerdings steht inner delphi hilfe folgendes:

case mycolor of
red: X := 1
green : X := 2
...
end;

variablen stehn aber auch nicht dabei nur das was ich gerade geschriebne hab :/

fkerber 11. Dez 2004 16:43

Re: case of
 
Hi!

Kannst du mal den ganzen Auszug posten?
Das da kommt mir sehr komisch vor.


Ciao Frederic

alcaeus 11. Dez 2004 17:10

Re: case of
 
Hi inst666,

der Abschnitt lautet zwar wirklich so
Delphi-Quellcode:
case MyColor of
  Red: X := 1;
  Green: X := 2;
  Blue: X := 3;
  Yellow, Orange, Black: X := 0;
end;
aber wie du siehst, kann es sich nicht um einen String handeln, da die ' fehlen.

Wenn du dir aber noch folgendes dazudenkst, dann stimmt der Code wieder:

Delphi-Quellcode:
type
  MyColors = (Black, Blue, Green, Orange, Red, Yellow);
//...
var
  MyColor: MyColors;
//...
//Hier kommt die case-Abfrage
Es funktioniert aber auch, wenn MyColor als Integer definiert ist, und Red, Green usw. als Konstanten deklariert sind.
Dies alles ändert aber nichts an der Tatsache, dass bei case nur ordinale Typen verwendet werden können. Alle Float- und String-Typen gehören da einfach mal nicht dazu, da kann man nichts ändern.

Greetz
alcaeus

fkerber 11. Dez 2004 17:12

Re: case of
 
Hi!

Axo, das war getrickst. Naja, dann ist klar. Hatte nicht an die '' gedacht.


Ciao Frederic

Nikolas 11. Dez 2004 17:13

Re: case of
 
Ganz umständlich, aber so wie verlangt, wäre doch eigentlich der Weg, den String in seiner Bit-Darstellung zu nehmen, das als Zahl zu lesen und mit der dann zu arbeiten. :P

// Nur eben schlecht zu warten...


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 Uhr.
Seite 2 von 2     12   

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