Eine PaintBox wird nur zur Entwurfszeit, im Designer von Delphi, durch ein gestricheltes Rechteck dargestellt. An und für sich ist sie unsichtbar. Logisch, denn eine PaintBox dient ja quasi nur als Leinwand, auf die man mittels ihres OnPaint-Ereignisses selbst etwas zeichnen muss.
Dem OnPaint-Ereignis einen Handler zuweisen geht z.B. so:
Delphi-Quellcode:
// Methode aus deinem ersten Beitrag, etwas erweitert
procedure TForm1.FormCreate(Sender: TObject);
var i:Integer;
begin
PB:=TMyPaintBox.Create(Panel1);
PB.Align:=alClient;
PB.OnPaint := MyPaintBoxPaint;
end;
// Methode von Form1, die der PaintBox als OnPaint-Handler zugewiesen wird
// Dieses Beispiel füllt die Fläche der PaintBox einfach nur mit blauer Farbe
procedure TForm1.MyPaintBoxPaint(Sender: TObject);
begin
with Sender as TPaintBox do
begin
Canvas.Brush.Color := clBlue;
Canvas.FillRect(ClientRect);
end;
end;
Ich hoffe das hilft ein bisschen. Vielleicht solltest du erst mal mit statischen, mittels des Delphi Formdesigners platzierten PaintBoxes üben, bevor du dich an dynamische wagst.