In deinen Repeat until-Schleifen tut sich ja gar nichts.
statt
Delphi-Quellcode:
repeat
a:=a+1;
until a>123;
kannst du auch gleich schreiben
a:=124
; mehr macht diese Schleife nicht. Du muss innterhalb jeder dieser Repeat-Schleifen nochmal
Delphi-Quellcode:
Paintbox1.Canvas.Brush.Color:=
rgb(a, b, c);
Paintbox1.Canvas.Pie(60, 160, 100, 200, 60, 180, 100, 180);
sleep(10);
machen und die äußere Repeat-Schleife weglassen. Dann werden die
RGB-Werte getrennt voneinander nacheinander aminiert geändert. Ist das so gewollt? Andernfalls muss du den Beitrag von Popov berücksichtigen.
Ein Timer wäre eleganter, aber so geht's auch. Denk aber dran, dass das Reagenzglas nochmal mit der aktuellen Farbe im OnPaint das Paintbox gemalt werden muss, sonst ist es weg, wenn dein Fenster mal verkleiner und wiederhergestellt wird.
Noch ein par Tips:
- Quelltext ist Text, wie der Name schon sagt, also postet man den auch als Text und nicht als Screenshot.
- Wenn du schon Integer-Variablen für
RGB-Werte hast, warum heißen die a,b,c und nicht r,g,b?
- Lass das With weg. Später schreibst du ja Paintbox1.Canvas.Brush.Color sowieso aus, dann kannst du dir das with doch sparen. Ohne with weiß man immer genau, was gemeint ist.