Das Wichtigste ist, dass die PaintBox ihren Kram selber zeichnet. Und zwar in dem Event
OnPaint
.
Wenn die PaintBox nun also etwas mehr zeichnen soll, dann muss man so etwas wie einen Bauplan zur Verfügung stellen und dann kann die PaintBox diesen Bauplan abarbeiten.
Ändert man den Bauplan, dann teilt man das der PaintBox durch den Aufruf von
TPaintBox.Repaint
mit.
Der einfachste Bauplan, wäre z.B. das Zeichnen der Ellipse:
Delphi-Quellcode:
type
TForm1 = class( TForm )
CheckBox1: TCheckBox; // OnClick = CheckBox1Click
PaintBox1: TPaintBox; // OnPaint = PaintBox1Paint
procedure CheckBox1Clicked( Sender: TObject );
procedure PaintBox1.Paint( Sender: TObject );
private
FPaintEllipse: Boolean;
end;
procedure TForm1.CheckBox1Clicked( Sender: TObject );
begin
// Bauplan ändern
FPaintEllipse := CheckBox1.Checked;
// PaintBox neu zeichnen lassen
PaintBox1.Repaint;
end;
procedure TForm1.PaintBox1Paint( Sender: TObject );
var
LCanvas: TCanvas;
begin
LCanvas := TPaintBox(Sender).Canvas;
// nach dem Bauplan zeichnen
if FPaintEllipse then
LCanvas.Ellipse(100,100,400,400);
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)