AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CASE mit Variablen???

Ein Thema von EDatabaseError · begonnen am 15. Jul 2006 · letzter Beitrag vom 15. Jul 2006
Antwort Antwort
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#1

CASE mit Variablen???

  Alt 15. Jul 2006, 16:13
und nommal

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]
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 16:24
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
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#3

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 16:30
nein den i1 hat den wert 5-255 und bei bspw. 5:
3 div 5 = 1
4 div 5 = 1
5 div 5 = 1




Mfg
Tobi

//EDIT 5-255
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 16:30
Hallo marabu,

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

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 16:44
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 ^^
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 16:45
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
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 16:46
Speicher die Farbwerte doch in ein Array und berechne nur den Index. Spart ne Menge Code.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#8

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 16:48
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?


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.
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 16:50
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
Klaus
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#10

Re: CASE mit Variablen???

  Alt 15. Jul 2006, 17:02
das kommt davon wenn man zu lange arbeitet danke. funktioniert.
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 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