Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi OnMouseWheel (https://www.delphipraxis.net/78646-onmousewheel.html)

gengler2 8. Okt 2006 20:27


OnMouseWheel
 
Hi,

Hab kurz 'ne Frage.

Wie kann ich in einem Memofeld mit dem Rad der Mouse scrollen?

Matze 8. Okt 2006 20:37

Re: OnMouseWheel
 
Hi,

wenn du die Eigenschaft ScrollBars beispielsweise auf ssVertical setzt, dann geht das ohne Umwege über Ereignisse/Messages.

gengler2 8. Okt 2006 20:42

Re: OnMouseWheel
 
Bei mir aber leider nicht. Weiss leider nicht warum, deshalb wollte ich es über die Prgrammation versuchen.

Bernhard Geyer 8. Okt 2006 20:45

Re: OnMouseWheel
 
Zitat:

Zitat von gengler2
Bei mir aber leider nicht. Weiss leider nicht warum, deshalb wollte ich es über die Prgrammation versuchen.

Welche Delphi-Version wird eingesetzt. Ältere Versionen unterstützen das MouseWheel nicht in der VCL.

gengler2 8. Okt 2006 20:45

Re: OnMouseWheel
 
Delphi 5 Professional

Matze 8. Okt 2006 21:14

Re: OnMouseWheel
 
Vielleicht kannst du es irgendwie so lösen (nicht getestet):

Delphi-Quellcode:
procedure WMMouseWheel(var Msg: TWMMouseWheel); message WM_MOUSEWHEEL;

procedure TForm1.WMMouseWheel(var Msg: TWMMouseWheel);
begin
  if Memo1.Focused then
  begin
    if Msg.WheelDelta > 0 then
      // scroll up
      SendMessage(Memo1.Handle, WM_VSCROLL, SB_PAGEUP, 0)
    else
      // scroll down
      SendMessage(Memo1.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);

    Msg.Result := 0;
  end;
end;
Ich weiß nicht, ob man's so überhaupt lösen kann, könnte es mir jedoch vorstellen.

gengler2 8. Okt 2006 21:25

Re: OnMouseWheel
 
Das funktionniert leider auch nicht.

alias5000 8. Okt 2006 22:29

Re: OnMouseWheel
 
Woran hängts?

_frank_ 8. Okt 2006 22:55

Re: OnMouseWheel
 
hab das bei mir (delphi 3) auch mal probiert...

Delphi-Quellcode:
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
    procedure WheelMessage(var Msg: TMsg); message WM_MOUSEWHEEL;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if msg.message=WM_MOUSEWHEEL then
    showmessage('Ja');
end;

procedure TForm1.WheelMessage(var Msg: TMsg);
begin
  Showmessage('Ja');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//application.OnMessage:=AppMessage;
end;
über die normale Nachrichten-Abfrage (WheelMessage) wird keine Messagebox angezeigt.
die 2. Variante über Application.OnMessage funktioniert dagegen... (scheinbar wird die message nicht ans Form geschickt sondern nur an die Anwendung)

HTH Frank

gengler2 9. Okt 2006 21:08

Re: OnMouseWheel
 
Das funktionniert auch. Habe vergessen zu sagen dass es sich um eine Memo Feld von den LMD Komponenten handelt. Ich kann abfragen ob am Mausrad gedreht wurde, jedoch weiss ich nicht wie ich in dem Memo Feld scrolle.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr.
Seite 1 von 2  1 2      

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