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 Labelfarbe ändern, wenn... (https://www.delphipraxis.net/5234-labelfarbe-aendern-wenn.html)

Marco Haffner 30. Mai 2003 22:42

Ich habe aber auch selbst was falsches geschrieben. :oops:
Wenn dann müßte es so heißen:
Delphi-Quellcode:
if (StrToInt(ges_mo.caption) >= 50) then
...
if (StrToInt(ges_mo.caption) <= 49) then
Ist Deine Berechnung auch in einen try..except-Block gepackt?

Hansa 31. Mai 2003 00:03

habe das Thema nur mal so überflogen aber eins will ich wissen: warum benutzt ihr eigentlich für so was kein Case :?: Bei
Code:
if ... then... else
ist mir das auch zu blöd, aber kommt da noch eine Möglichkeit dazu, ist doch wohl schon Case angesagt, oder?

Chriss 31. Mai 2003 00:58

ich benutze kein case, weil ich mit if...then...else super klar komme und das hierzu gut passt, es sind nämlich nur ein paar befehle und das is der großteil des programms, da alles andere aufeinander aufbaut, also keine große sache an sich...
aber naja... eigentlich haste recht, wenn ich mal ne ausbaustufe von dem prog. mache, dann verwende ich besser case of...
cya
chriss

Marco Haffner 31. Mai 2003 01:07

Ich denke nicht, das in diesem Fall case angebracht wäre.
Er will ja größer oder gleich 100, größer oder gleich 50 und kleiner gleich 49 abfragen. Es steht aber nicht da, welche Werte möglich sind, also kleiner 0 oder wie weit über die 100 hinaus. Aber mal angenommen der kleinste mögliche Wert ist 0, dann müßte es eigentlich so aussehen:
Delphi-Quellcode:
case StrToInt(ges_mo.caption) of
  0..49: ges_mo.font.Color := clLime;
  50..99: ges_mo.font.Color := clYellow;
else
  ges_mo.font.Color := clRed;
end;
Zahlen kleiner als 0 würden hier dann aber auch in rot angezeigt.

Hansa 31. Mai 2003 01:20

@Marco, so wars vorher:

Code:
if ges_mo.caption>='100' then
begin
ges_mo.font.color:=clred;
end
else
if ges_mo.caption>='50' then
begin
ges_mo.font.color:=clyellow;
end
else
if ges_mo.caption<='50' then
begin
ges_mo.font.Color:=clgreen;
end;
Nun, was ist jetzt besser zu lesen/verstehen ? Eher doch wohl Dein Code. :hello:

Chriss 31. Mai 2003 07:24

oha, JETZT funktionierts

vielen dank.... frage mich nur, warum das mit if...then...else nicht funktioniert.....


cya Chriss :coder:

Hansa 31. Mai 2003 10:09

Geht es etwa jetzt mit Case :?: Mit IF THEN, das ist doch genau dasselbe. haha, ich sags ja immer: lesbarer Code ist besser, als ein schnelles Programm (< 1 ms schneller) :lol:, das nicht funktioniert.

Chriss 31. Mai 2003 16:32

du, kA, auf jeden fall funktioniert das ganz jetzt auf einmal!
wenn ich das ganze an dieselbe stelle schreibe mit if...then...else, dann tut's nicht! komische sache!
danke nochmal!!

cya
chriss

Hansa 31. Mai 2003 16:42

ja, komische Sache, aber besser es funktioniert und keiner weiß warum, als umgekehrt. War bestimmt nur Tippfehler. Ab 3 Auswahlmöglichkeiten nehm ich Case und basta. Ich bin aber trotzdem etwas verblüfft, daß der Fehler durch Case so schnell weg war. Wie gesagt: ich sags ja immer!


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

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