Wenn man nur ein Bild nehmen würde (wahrscheinlich TImage) und das dann verändert, wird es bei jeder kleinen Veränderung neu gezeichnet, was Zeit kostet.
Nimmt man ein zweites Bild (z.B. ein TBitmap), was man nicht sehen kann und verändert dieses, wird nichts auf den Bildschirm gezeichnet (weil es ja nicht sichtbar ist). Wenn die Veränderung fertig ist, wird dann das gesamte zweite Bild auf das Erste geklatscht. Das erste wird also nur ein Mal neu gezeichnet und es tritt somit kein Flacker-Effekt auf
Code könnte so aussehen (so aus dem Kopf heraus...)
Delphi-Quellcode:
bild: TImage;
bmp: TBitmap;
...
procedure male();
begin
bmp.assign(bild.Picture.Bitmap);//Bilddaten in bmp kopieren
auf bmp herumzeichnen
bild.Picture.bitmap.Assign(bmp);//und wieder zurük auf das TImage
end;
alternativ müsste auch einfach folgendes gehen:
DoubleBuffered := true;
jetzt wird das ganze automatisch gemacht