Den Bildschirm aktualisieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Grafikprogrammierung im Überblick

Ein Betriebssystem gibt zu bestimmten Zeiten vor, dass die Darstellung der Bildschirmobjekte aufgefrischt werden muss, und erzeugt zu diesem Zweck unter Windows WM_PAINT-Botschaften, die von der VCL an OnPaint-Ereignisse weitergeleitet werden. Haben Sie eine Ereignisbehandlungsroutine für dieses Objekt geschrieben, wird diese aufgerufen, wenn Sie die Methode Refresh verwenden. Standardmäßig erhält die OnPaint-Ereignisbehandlungsroutine in einem Formular den Namen FormPaint. Sie können eine Komponente oder ein Formular mit der Methode Refresh aktualisieren. So können Sie beispielsweise Refresh in der Ereignisbehandlungsroutine für OnResize des Formulars aufrufen, um Grafiken neu anzuzeigen oder bei Verwendung der VCL in einem Formular einen Hintergrund zu zeichnen.

Unter Windows erfolgt das Neuzeichnen des Client-Bereichs eines Fensters, das aktualisiert werden muss, nicht automatisch, wie dies bei einigen anderen Betriebssystemen der Fall ist. Alles, was unter Windows auf den Bildschirm gezeichnet wird, ist permanent. Wird ein Formular oder Steuerelement vorübergehend verdeckt, beispielsweise beim Verschieben eines Fensters, muss das Formular oder Steuerelement den verdeckten Bereich neu zeichnen, wenn er wieder angezeigt wird. Weitere Informationen zur Botschaft WM_PAINT finden Sie in der Online-Hilfe zu Windows.

Wenn Sie das Steuerelement TImage verwenden, um eine Grafik in einem Formular anzuzeigen, erfolgt das Zeichnen und Aktualisieren der in TImage enthaltenen Grafik automatisch. Die Eigenschaft Picture gibt die Bitmap-Grafik, Zeichnung bzw. die Grafikkomponente an, die im TImage-Steuerelement angezeigt wird. Sie können auch die Proportional-Eigenschaft definieren, um sicherzustellen, dass das Bild ohne Verzerrungen in dem Bild-Steuerelement dargestellt wird. Da beim Zeichnen auf TImage ein persistentes Bild erzeugt wird, brauchen Sie nichts zu unternehmen, um das enthaltene Bild neu zu zeichnen. Im Gegensatz hierzu ist die Zeichenfläche von TPaintBox direkt dem Bildschirmgerät (VCL-Anwendungen) zugeordnet, so dass alles, was auf die Zeichenfläche von PaintBox gezeichnet wird, nicht persistent ist. Dies trifft für nahezu alle Steuerelemente und auch für das Formular selbst zu. Deshalb müssen Sie, wenn Sie mit dem Konstruktor von TPaintBox zeichnen oder das Bild aufbauen, diesen Quelltext auch in die OnPaint-Ereignisbehandlungsroutine einfügen, damit das Bild neu gezeichnet wird, wenn der Client-Bereich aktualisiert werden muss.

Siehe auch