Einzelnen Beitrag anzeigen

SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#5

Re: Dynamische Paintbox wird nicht angezeigt...

  Alt 11. Okt 2005, 00:30
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.
  Mit Zitat antworten Zitat