![]() |
Problem mit repaint bei eigener Komponente
Ich hab mir eine neue Komponente von TWinControl abgeleitet (nachfolgend MyCom1 genannt) und darin befinden sich mehrere Buttons. Dann habe ich ein "FadePanel" welches über MyCom1 fadet. Wenn das Pannel dann über MyCom1 weg fadet wird ja die wm_paint an MyCom1 gesendet und alle Buttons darin werden auch repaintet egal ob sie davon betroffen sind oder nicht. Um dies zu verhinern ab ich wm_paint abgefangen und verwurfen.
Mein Problem ist jetzt das ich nicht weiß wie ich herausfinde welchen Button ich manuell repainten muss weil das panel darüber weg ist und welchen nicht. Wie kann ich herauffinden welchen Teil ich von meiner Komponenten repainten muss. also das betroffene rect? |
Re: Problem mit repaint bei eigener Komponente
Hi...
Kannst du nicht statt wm_paint ganz wegzulassen es bedingt laufen lassen? Die bedingung kannst du dann ja nach Bedarf definieren, jenachdem was du mit dem rect (Shape?) anstellst... |
Re: Problem mit repaint bei eigener Komponente
eben das hab ich ja vor, nur weiß ich nicht wo ich die info her bekomme welcher teil meiner komponente neu gezeichnet werden soll. Es kommt ja nur die wm_paint und ich weiß nicht ob es für die ganze komponente gilt oder ob es reichen würde die linke obere ecke neu zu painten
|
Re: Problem mit repaint bei eigener Komponente
Schau Die mal die API-Funktion 'GetUpdateRect' an. (Als Alternative dazu kannst Du 'BeginPaint' und 'EndPaint' benutzen.)
Mit 'PtInRect' kannst Du überprüfen, ob die Eckpunkte Deiner Buttons innerhalb des Update-Bereichs liegen und sie dann zum Neuzeichnen auffordern. Gruß, teebee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz