Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Anfangspunkt in Paintbox

  Alt 5. Apr 2005, 12:45
Zitat von himitsu:
Zitat von shmia:
Häufig wird der Fehler gemacht, dass ausserhalb des Events OnPaint auf den Canvas gezeichnet wird; dass wäre aber ein Fehler.
Fehler?
Ich zeichne sehr oft außerhalb dieses Events darauf.
Im OnPaint wird (bei mir) nur etwas neugezeichnet, wenn z.B. ein Teil verdeckt war ...

Wuzu muß/soll man erst 'ne Umleitung über OnPaint machen, wenn es an den "anderen" Stellen, also dort wo sich etwas ändern soll, diese Veränderung direkt reinzeichnet?
Dann musst du ja an 2 Stellen den Code fürs Zeichnen bereithalten:
einmal an der "anderen" Stelle und dann im OnPaint-Eventhandler.
Jederzeit kann die Paintbox von einem Fenster überdeckt werden; beim wiederaufdecken wird OnPaint aufgerufen.
Wenn das Zeichnen aus 3 Dingen besteht, kann man den OnPaint-Eventhandler auch so schreiben:
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
   ZeichneTeil1(PaintBox1.Canvas);
   ZeichneTeil2(PaintBox1.Canvas);
   ZeichneTeil3(PaintBox1.Canvas);
end;
Wenn zu einem "anderen" Zeitpunkt weisst, dass Teil2 sich geändert hat, dann kannst du
Delphi-Quellcode:
begin
  ...
  ZeichneTeil2(PaintBox1.Canvas);
  ...
end;
ansonsten ist PaintBox1.Invalidate die saubere Lösung.
Andreas
  Mit Zitat antworten Zitat