Moin Stephan,
wieder ein Beispiel.
Code:
[b]type[/b]
TForm1 = [b]class[/b](TForm)
PaintBox1: TPaintBox;
[b]procedure[/b] PaintBox1Paint(Sender: TObject);
[b]procedure[/b] FormDestroy(Sender: TObject);
[b]private[/b]
[color=#000080]{ Private-Deklarationen }[/color]
FbmpWork : TBitmap;
[b]procedure[/b] SavePaintBox;
[b]public[/b]
[color=#000080]{ Public-Deklarationen }[/color]
[b]end[/b];
[b]var[/b]
Form1: TForm1;
[b]implementation[/b]
[color=#000080]{$R *.DFM}[/color]
[b]procedure[/b] TForm1.SavePaintBox;
[b]var[/b]
rtWork : TRect;
[b]begin[/b]
[b]if[/b] Assigned(FbmpWork) [b]then[/b]
[b]begin[/b]
FreeAndNil(FbmpWork);
[b]end[/b];
FbmpWork := TBitmap.Create;
FbmpWork.Width := PaintBox1.Width;
FbmpWork.Height := PaintBox1.Height;
rtWork.Left := 0;
rtWork.Top := 0;
rtWork.Right := FbmpWork.Width;
rtWork.Bottom := FbmpWork.Height;
FbmpWork.Canvas.CopyRect(rtWork,PaintBox1.Canvas,PaintBox1.ClientRect);
[b]end[/b];
[b]procedure[/b] TForm1.PaintBox1Paint(Sender: TObject);
[b]begin[/b]
[b]if[/b] Assigned(FbmpWork) [b]then[/b]
[b]begin[/b]
PaintBox1.Canvas.Draw(0,0,FbmpWork);
[b]end[/b];
[b]end[/b];
[b]procedure[/b] TForm1.FormDestroy(Sender: TObject);
[b]begin[/b]
[b]if[/b] Assigned(FbmpWork) [b]then[/b]
[b]begin[/b]
FreeAndNil(FbmpWork);
[b]end[/b];
[b]end[/b];
Wenn SavePaintBox aufgerufen wird, wir der Inhalt der Paintbox in eine Bitmap gesichert, und soweit diese etwas enthält, im OnPaint der PaintBox angezeigt.