Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Mausrad in DBGrid (https://www.delphipraxis.net/168384-mausrad-dbgrid.html)

christio 18. Mai 2012 08:39

Mausrad in DBGrid
 
Hi,

Für das korrekte Funktionieren des Mausrades verwendete ich bis Delphi 2010 folgenden Code:

Delphi-Quellcode:
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;
Dieser Code scheint in Delphi XE2 nicht mehr richtig zu funktionieren, da ich immer ein VK_UP erhalte (msg.wParam ist immer positiv)
Hängt dies mit dem Typ NativeUInt zusammen?

DeddyH 18. Mai 2012 08:45

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.

christio 18. Mai 2012 08:52

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?

christio 18. Mai 2012 08:59

AW: Mausrad in DBGrid
 
Hi,

Mit
Delphi-Quellcode:
 If Integer(Msg.wParam) > 0 then ...
funktionierts.

Trotzdem Danke.

DeddyH 18. Mai 2012 09:00

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