Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: repeat-until ersetzten durch if/for/while

  Alt 16. Apr 2004, 20:34
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.
  Mit Zitat antworten Zitat