such dir was aus - einmal mit if und das andere mit max:
Delphi-Quellcode:
c := ColorToRGB(l_rahmenprogramm.Font.Color);
while c
and $ffffff > 0
do begin
c :=
rgb(Max(GetRValue(c) - 1, 0), Max(GetGValue(c) - 1, 0), Max(GetBValue(c) - 1, 0));
l_rahmenprogramm.Font.Color := c;
l_rahmenprogramm.Font.Refresh;
sleep(1);
end;
Delphi-Quellcode:
c := ColorToRGB(l_rahmenprogramm.Font.Color);
while c
and $ffffff > 0
do begin
if GetRValue(c) > 0
then r := GetRValue(c) - 1
else r := 0;
if GetGValue(c) > 0
then g := GetGValue(c) - 1
else g := 0;
if GetBValue(c) > 0
then b := GetBValue(c) - 1
else b := 0;
c :=
rgb(r, b, g);
l_rahmenprogramm.Font.Color := c;
l_rahmenprogramm.Font.Refresh;
sleep(1);
end;
PS: bei deiner Schleife war auch noch ein großer Fehler - wenn eine Farbe 0 war, so wurde der entsprechenden Variable (r, g, oder b) nichts zugewiesen.
[ADD]
glkbkk's Code stimmt genau mit deinem Beispiel überein, nur eben mit while und nicht mit repeat, aber dor ist auch der Fehler mit den nicht zugewiesenen Variablen drin und bei mir geht es komplett runter auf 0. Wenn z.B. im Extremfall die Schriftfarbe = Rot ist, so wird bei euren Schleifen nicht viel passeren
Ein Therapeut entspricht 1024 Gigapeut.