AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mausrad in DBGrid

Ein Thema von christio · begonnen am 18. Mai 2012 · letzter Beitrag vom 18. Mai 2012
Antwort Antwort
christio

Registriert seit: 7. Sep 2006
12 Beiträge
 
#1

Mausrad in DBGrid

  Alt 18. Mai 2012, 08:39
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Mausrad in DBGrid

  Alt 18. Mai 2012, 08:45
Das U in NativeUInt steht ja vermutlich für Unsigned, von daher kann der Wert gar nicht kleiner als 0 sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
christio

Registriert seit: 7. Sep 2006
12 Beiträge
 
#3

AW: Mausrad in DBGrid

  Alt 18. Mai 2012, 08:52
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?
  Mit Zitat antworten Zitat
christio

Registriert seit: 7. Sep 2006
12 Beiträge
 
#4

AW: Mausrad in DBGrid

  Alt 18. Mai 2012, 08:59
Hi,

Mit  If Integer(Msg.wParam) > 0 then ... funktionierts.

Trotzdem Danke.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Mausrad in DBGrid

  Alt 18. Mai 2012, 09:00
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 [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz