![]() |
Mausrad in DBGrid
Hi,
Für das korrekte Funktionieren des Mausrades verwendete ich bis Delphi 2010 folgenden Code:
Delphi-Quellcode:
Dieser Code scheint in Delphi XE2 nicht mehr richtig zu funktionieren, da ich immer ein VK_UP erhalte (msg.wParam ist immer positiv)
var
i: smallint; begin if ((Msg.message = WM_MOUSEWHEEL) and (Screen.ActiveControl is TCustomDBGrid)) then begin Msg.message := WM_KEYDOWN; Msg.lParam := 0; i := HiWord(Msg.wParam) ; if i > 0 then Msg.wParam := VK_UP else Msg.wParam := VK_DOWN; Handled := False; end; Hängt dies mit dem Typ NativeUInt zusammen? |
AW: Mausrad in DBGrid
Das U in NativeUInt steht ja vermutlich für Unsigned, von daher kann der Wert gar nicht kleiner als 0 sein.
|
AW: Mausrad in DBGrid
Danke.
In Delphi 2010 war WPARAM von Typ INT_PTR (Integer). In XE2 ist es vom Typ UINT_PTR (NativeUInt). Wie erkenne ich aber nun, ob das Mausrad nach oben oder nach unten bewegt wird? |
AW: Mausrad in DBGrid
Hi,
Mit
Delphi-Quellcode:
funktionierts.
If Integer(Msg.wParam) > 0 then ...
Trotzdem Danke. |
AW: Mausrad in DBGrid
Ich habe mir Deinen Code und das MSDN zu WM_MOUSEWHEEL gerade noch einmal genauer angesehen. Da Du das höherwertige Word ja in eine SmallInt castest, sollte diese auch negative Werte annehmen können. Geht es denn um ein 32- oder ein 64Bit-Programm? Evtl. stimmen die Größen einfach nicht, aber da ich kein XE2 besitze, kann ich auch nur mutmaßen.
[edit] Kein roter Kasten. Aber schön, dass wir mal drüber gesprochen haben :lol: [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 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