Delphi-Quellcode:
procedure TForm2.Rectangle1Click(Sender: TObject);
begin
Rectangle1.Fill.Color := TAlphaColorRec.Green;
Rectangle1.Repaint; // male dich "demnächst" neu (hier wird sowas wie ein PostMessage+WM_PAINT abgesetzt)
Application.ProcessMessages; // jetzt (und nun wird das verarbeitet)
Sleep(2000);
Rectangle1.Fill.Color := TAlphaColorRec.White;
end;
Aber besser, wenn man rausbekommt, wie man der Komponente oder der Form direkt sagen könnte "Das" jetzt zu machen.
[add]
Delphi-Quellcode:
procedure TForm2.Rectangle1Click(Sender: TObject);
begin
Self.Canvas.BeginScene;
Rectangle1.Fill.Color := TAlphaColorRec.Green;
Rectangle1.PaintTo(Self.Canvas, Rectangle1.UpdateRect, nil); // du willst nicht wissen, wie ich hierfür auf BeginScene gekommen bin. (Tipp: kommentiere mal BeginScene/EndScene aus)
Self.Canvas.EndScene;
Sleep(2000);
Rectangle1.Fill.Color := TAlphaColorRec.White;
end;