Du hast mit Bordmitteln min. 5 Alternativen:
1.) auf einem Image zeichen
- kann flackern
2.) auf einer Paintbox zeichnen
- flackert
3.) abwechselnd auf 2 Bitmaps zeichnen. Das Bitmap, auf dem nicht gezeichnet wird, steht bereit um auf einer Paintbox ausgegeben zu werden
das ist double buffering selbst gemacht
4.) man zeichnet auf ein Bitmap und kopiert es als Ganze in ein Image
5.) Image vor Updates sperren, auf Image zeichnen, Sperre aufheben
Wichtig ist, dass deine Zeichenprocedure ein TCanvas-Objekt als Input entgegennimmt.
Damit bleibst du flexibel und kannst jede der obigen Alternativen ausprobieren.
Hast du denn die Paintbox richtig verwendet??
Gezeichnet wird nur und auschliesslich im Event OnPaint!
Wenn man will, dass die Paintbox neu gezeichnet wird, muss man Paintbox.Invalidate aufrufen.
Zu deinen Fehlern und Abstürzen ist zu sagen, das liegt wahrscheinlich an einer unsauberen Programmierung.
Ausserdem ist ein Timerinterval von 1/25 oder gar 5ms zu schnell für eine normale
VCL-Anwendung.