Erstell eine TBitmap Variable mit den Koordinaten von ClientHeight und ClientWidth des Formulars. Zeichne was du zeichnen willst auf der Bitmap. Setze in OnPaint Prozedur des Formulars eine Kopierfunktion die die Bitmap auf das Formular überträgt.
Andrers gehts leider nicht.
Ich hab mal schnell ein Beispiel gezaubert:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| var Form1: TForm1; Bmp: TBitmap;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); begin Bmp := TBitmap.Create; Bmp.Canvas.Brush.Color := clYellow; Bmp.Width := ClientWidth; Bmp.Height := ClientHeight; end;
procedure TForm1.FormDestroy(Sender: TObject); begin Bmp.Free; end;
procedure TForm1.FormPaint(Sender: TObject); begin Canvas.Draw(0, 0, Bmp); //Draw oder was besseres end;
procedure TForm1.Button1Click(Sender: TObject); begin Bmp.Canvas.Rectangle(10, 20, 300, 400); //Als Beispiel wird ein Rechteck gezeichnet FormPaint(Self); //Nach jeder wichtigen Aktion Bitmap wieder übertragen end; |