![]() |
OnMouseWheel
Hi,
Hab kurz 'ne Frage. Wie kann ich in einem Memofeld mit dem Rad der Mouse scrollen? |
Re: OnMouseWheel
Hi,
wenn du die Eigenschaft ScrollBars beispielsweise auf ssVertical setzt, dann geht das ohne Umwege über Ereignisse/Messages. |
Re: OnMouseWheel
Bei mir aber leider nicht. Weiss leider nicht warum, deshalb wollte ich es über die Prgrammation versuchen.
|
Re: OnMouseWheel
Zitat:
|
Re: OnMouseWheel
Delphi 5 Professional
|
Re: OnMouseWheel
Vielleicht kannst du es irgendwie so lösen (nicht getestet):
Delphi-Quellcode:
Ich weiß nicht, ob man's so überhaupt lösen kann, könnte es mir jedoch vorstellen.
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; |
Re: OnMouseWheel
Das funktionniert leider auch nicht.
|
Re: OnMouseWheel
Woran hängts?
|
Re: OnMouseWheel
hab das bei mir (delphi 3) auch mal probiert...
Delphi-Quellcode:
über die normale Nachrichten-Abfrage (WheelMessage) wird keine Messagebox angezeigt.
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; die 2. Variante über Application.OnMessage funktioniert dagegen... (scheinbar wird die message nicht ans Form geschickt sondern nur an die Anwendung) HTH Frank |
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. |
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