Nö.
I und X sind vertauscht bei:
Delphi-Quellcode:
// paintbox1.Canvas.Pixels[i,x] := clblue; <-<<
// richtig:
paintbox1.Canvas.Pixels[x, i] := clblue;
Die Paitbox an sich stellt Graphicen nur themporär zur Verfügung.
Wenn ein anderes Fenster Label etc. dazwichen funkt wird der entsprechende Bereich in der Paintbox übermalt btz. gelöscht.
Abhilfe, setze die Zeichenroutiene in das FormPaint-Ereignis.
Delphi-Quellcode:
procedure TFormX.PaintBoxXPaint(Sender: TObject);
begin
// ...
end;
Nun wird immer neu gezeichnet.