![]() |
Alternative für InvalidateRect
Beim Mousemove führe ich ein InvalidateRect aus.
Das Problem dabei ist das mir dann die FPS in den Keller geht.
Delphi-Quellcode:
Gibt es eine andere Möglichkeit den Button des zuletzt ausgewählten Item ohne Invalidate zu löschen?
if GdipCreateFromHDC(Dc, Graphics) = OK then
begin if nItem <> OldItem then begin Height := rc.bottom + CurPos.y; Count := ListView_GetItemCount(WinHandle); if (((nItem - TopItem) * ItemHeight) div ItemHeight) <= Count then begin if nItem <= ((Height - CurPos.y) div ItemHeight) + TopItem then begin SkinEngine.FInvalidateRect(WinHandle, True); // Hier das Invalidate SkinEngine.PaintButton(Graphics, 5, ImgBack, rc.Left, ((nItem - TopItem) * ItemHeight) + 7, rc.Right, ItemHeight, BS_PUSHBUTTON); end; end; end; OldItem := nItem; GdipDeleteGraphics(Graphics); end; TrackMouse, SetCapture oder ähnliches? TrackMouse funktioniert ja nur für das gesamte Control oder auch für Items? (ListView) Hoffe das es verständlich genug ist was ich erreichen möchte. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 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