Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi CASE mit Variablen??? (https://www.delphipraxis.net/73311-case-mit-variablen.html)

EDatabaseError 15. Jul 2006 15:13


CASE mit Variablen???
 
und nommal :lol:

Delphi-Quellcode:
    case i of
     0..i1:                          begin
                                       tanks[tank].bar.forecolor := clblack;
                                      end;
     i1+1..i1+i1:                    begin
                                       tanks[tank].bar.forecolor := clRed;
                                      end;
     i1+i1+1..i1+i1+i1.              begin
                                       tanks[tank].bar.forecolor := clYellow;
                                      end;
     i1+i1+i1+1..i1+i1+i1+i1:        begin
                                       tanks[tank].bar.forecolor := clGreen;
                                      end;
     i1+i1+i1+i1+1..i1+i1+i1+i1+i1:  begin
                                       tanks[tank].bar.forecolor := clLime;
                                      end;
    end;
will der Compiler nicht machen da i1 keine Konstante ist. Gibt es noch eine andere möglichkeit das ganze so zu überprüfen?

Mfg
Tobi

[edit=Christian Seehase]Delphi-Tags korrgiert. Mfg, Christian Seehase[/edit]

marabu 15. Jul 2006 15:24

Re: CASE mit Variablen???
 
Hallo Tobias,

geht es nicht auch so?

Delphi-Quellcode:
case i div i1 of
  0: tanks[tank].bar.forecolor := clBlack;
  1: tanks[tank].bar.forecolor := clRed;
  // ...
end;
Grüße vom marabu

EDatabaseError 15. Jul 2006 15:30

Re: CASE mit Variablen???
 
nein den i1 hat den wert 5-255 und bei bspw. 5:
3 div 5 = 1
4 div 5 = 1
5 div 5 = 1

:gruebel:


Mfg
Tobi

//EDIT 5-255 ;-)

Hawkeye219 15. Jul 2006 15:30

Re: CASE mit Variablen???
 
Hallo marabu,

Mit "Pred(i)" wird es meiner Meinung nach richtiger.

Gruß Hawkeye

himitsu 15. Jul 2006 15:44

Re: CASE mit Variablen???
 
irgendwas stimmt da nicht, denn
3 div 5 = 0
4 div 5 = 0
5 div 5 = 1


aber marabus Weg geht schon in die richtige richtung ... nu muß nur noch die Formel richtig umgesetzt werden ^^

marabu 15. Jul 2006 15:45

Re: CASE mit Variablen???
 
Na - ich weiß nicht so recht, Hawkeye. Es sieht für mich einfach so aus, als ob Tobias beim Versuch i in fünf gleich große Teile zu zerlegen aus mathematischer Sicht etwas "geschludert" hat. Der Wertebereich von i müsste dann 0 .. Pred(5 * i1) sein. Bei den case ranges müsste dann die upper bound jeweils um eins nach unten korrigiert werden. Aber was weiß ich schon?

marabu

3_of_8 15. Jul 2006 15:46

Re: CASE mit Variablen???
 
Speicher die Farbwerte doch in ein Array und berechne nur den Index. Spart ne Menge Code.

EDatabaseError 15. Jul 2006 15:48

Re: CASE mit Variablen???
 
:stupid: dann eben 0...

kann man das ganze nich auch irgentwie mit ifs lösen???

bspw. so:
Delphi-Quellcode:
    if (i >= 0 and i <= i1) then
     begin

     end;
sind leider inkompatible typen was ist da falsch? :gruebel:


Zitat:

Zitat von 3_of_8
Speicher die Farbwerte doch in ein Array und berechne nur den Index. Spart ne Menge Code.

auf die 5 zeilen kommt es nu auch nicht an ;-)


//EDIT Hintergrundinfo: i1 ist ein Wert von 5-255 der das Maximal von i ist.
i ist ein Wert der 0-i1 annimmt.

Klaus01 15. Jul 2006 15:50

Re: CASE mit Variablen???
 
Delphi-Quellcode:
if (i >= 0) and (i <= i1) then
     begin

     end;
was ist denn i1 für ein Typ?
Oder reicht es die Klammern etwas anders zu setzen, siehe oben.

Grüße
Klaus

EDatabaseError 15. Jul 2006 16:02

Re: CASE mit Variablen???
 
:wall: das kommt davon wenn man zu lange arbeitet danke. funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 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