Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mausrad (https://www.delphipraxis.net/215197-mausrad.html)

JDS 25. Mai 2024 07:29

Mausrad
 
Wer kann mir beim Abfragen des Mausrads helfen?
Das Abfragen der Mausbuttons klappt bei mir. Jetzt fehlt das Rad.
T: 8914539
John-Dirk.Schneider@t-online.de

Vielen Dank! Aber "TForm1" ist unbekannt!

Delphi.Narium 25. Mai 2024 08:15

AW: Mausrad
 
Delphi-Quellcode:
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  if WheelDelta > 0 then
    ShowMessage('Mausrad nach oben gedreht')
  else
    ShowMessage('Mausrad nach unten gedreht');
end;

procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  ShowMessage('Mausrad nach oben gedreht');
  Handled := True;
end;

procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  ShowMessage('Mausrad nach unten gedreht');
  Handled := True;
end;
Der Parameter WheelDelta gibt an, in welche Richtung das Mausrad gedreht wurde. Ein positiver Wert bedeutet, dass das Rad nach oben gedreht wurde, während ein negativer Wert bedeutet, dass das Rad nach unten gedreht wurde.

BigAl 25. Mai 2024 20:33

AW: Mausrad
 
Und um sinnvoll mit dem Wert zu arbeiten teile ich normalerweise noch durch WHEEL_DELTA. Also:

Delphi-Quellcode:
var
  WheelOffset: Single;
begin
  WheelOffset := WheelDelta / WHEEL_DELTA;
  ...
end;
Oder falls es mit Botschaftsverarbeitung sein soll:

Delphi-Quellcode:
interface

class TSomething(must be a successor of WinControl)
protected
  procedure WMMouseWheel(var AMsg: TWMMouseWheel); message WM_MOUSEWHEEL;
end;

implementation

procedure TSomething.WMMouseWheel(var AMsg: TWMMouseWheel);
// mouse wheel
var
  WheelOffset: Single;
begin
  inherited;

  WheelOffset := AMsg.WheelDelta / WHEEL_DELTA;
  ...
end;
TSomething sollte dann natürlich irgendwo von TWinControl abgeleitet worden sein...

jaenicke 25. Mai 2024 22:58

AW: Mausrad
 
Zitat:

Zitat von JDS (Beitrag 1537125)
Vielen Dank! Aber "TForm1" ist unbekannt!

Das war lediglich ein Beispiel. Du musst die Ereignisse in deinem Formular zuweisen:
OnMouseWheel, OnMouseWheelUp, OnMouseWheelDown, ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 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