Der Epina Delphi-Kurs bietet Ihnen eine allgemeine Einführung in das Programmieren mit Delphi/Pascal. Mit vielen ausgearbeiteten Beispielen können Sie direkt in die Delphi-Programmierung einsteigen. Mehr dazu finden Sie hier....

Neuzeichnen des Canvas

Frage: Wieso wird eine Grafik gelöscht, wenn sie zwischendurch durch ein anderes Fenster verdeckt wurde? (Ich habe direkt auf den Canvas des Formulars gezeichnet)
Antwort: Das ist ein generelles Problem des Canvas eines Formulars (=Windows-Fenster). Windows speichert (bis auf wenige Ausnahmen) generell nicht den Inhalt eines Fensters, sondern schickt an das Fenster eine "Invalidate"-Message, die dem Fenster mitteilt, dass es sich selbst neu zeichnen muss.

Programmiert man für ein Formular nicht explizit diese Routine zum Neuzeichnen, so wird die Grafik gelöscht, so bald sie einmal verdeckt war.

Verhindern lässt sich das nur, in dem man entweder auf den OnPaint event des Formulars reagiert, oder eine eigene Grafik-Komponente (z.B. TImage) verwendet, die diesen Job automatisch erledigt.

Hinweis: Unser Programmbeispiel "Bounce" reagiert auf diese Messages nicht (damit das Programm für den Anfang nicht zu kompliziert wird). Damit zeigt "Bounce" genau dieses (unerwünschte) Verhalten.

Last Update: 2008-09-09