Du benutzt ein TBitmap als zwischen speicher. Dadurch kann es auch nicht flimmern.
Delphi-Quellcode:
var
Backbild: TBitmap;
//dürfte klar sein
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.Draw(0,0,backbild);
end;
//Bitmap initializeren und bild aus Imag11 auf das Bitmap kopieren
procedure TForm1.FormCreate(Sender: TObject);
begin
Backbild := TBitmap.Create;
Backbild.Width := PaintBox1.Width;
Backbild.Height := PaintBox1.Height;
Backbild.Canvas.StretchDraw(Rect(0,0,Backbild.Width,Backbild.Height),Image1.Picture.Graphic);
end;
//beim beenden freigeben
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Backbild.Free;
end;
//hier ein Beispiel zum linien zeichnen
procedure TForm1.Button1Click(Sender: TObject);
begin
Backbild.Canvas.Pen.Color := clred;
Backbild.Canvas.MoveTo(1,1);
Backbild.Canvas.lineto(25,25);
PaintBox1.Canvas.Draw(0,0,backbild);
end;
Ich schreib hier ja bald dein ganzes Programm...
@Maze: Ich will da jetzt nicht draufrumhacken aber deine Lösung ist nicht gerade ideal.(meine ist sicher auch nicht perfekt)