![]() |
CASE mit Variablen???
und nommal :lol:
Delphi-Quellcode:
will der Compiler nicht machen da i1 keine Konstante ist. Gibt es noch eine andere möglichkeit das ganze so zu überprüfen?
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; Mfg Tobi [edit=Christian Seehase]Delphi-Tags korrgiert. Mfg, Christian Seehase[/edit] |
Re: CASE mit Variablen???
Hallo Tobias,
geht es nicht auch so?
Delphi-Quellcode:
Grüße vom marabu
case i div i1 of
0: tanks[tank].bar.forecolor := clBlack; 1: tanks[tank].bar.forecolor := clRed; // ... end; |
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 ;-) |
Re: CASE mit Variablen???
Hallo marabu,
Mit "Pred(i)" wird es meiner Meinung nach richtiger. Gruß Hawkeye |
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 ^^ |
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 |
Re: CASE mit Variablen???
Speicher die Farbwerte doch in ein Array und berechne nur den Index. Spart ne Menge Code.
|
Re: CASE mit Variablen???
:stupid: dann eben 0...
kann man das ganze nich auch irgentwie mit ifs lösen??? bspw. so:
Delphi-Quellcode:
sind leider inkompatible typen was ist da falsch? :gruebel:
if (i >= 0 and i <= i1) then
begin end; Zitat:
//EDIT Hintergrundinfo: i1 ist ein Wert von 5-255 der das Maximal von i ist. i ist ein Wert der 0-i1 annimmt. |
Re: CASE mit Variablen???
Delphi-Quellcode:
was ist denn i1 für ein Typ?
if (i >= 0) and (i <= i1) then
begin end; Oder reicht es die Klammern etwas anders zu setzen, siehe oben. Grüße Klaus |
Re: CASE mit Variablen???
:wall: das kommt davon wenn man zu lange arbeitet danke. funktioniert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz