Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi-Version Grid Mausrad (https://www.delphipraxis.net/182903-delphi-version-grid-mausrad.html)

baumina 25. Nov 2014 14:23

Delphi-Version Grid Mausrad
 
Seit welcher Delphi-Version wird eigentlich das Mausrad unterstützt, um z.B. in (DB)Grids zu scrollen? Kann es sein, dass das mein Delphi 2 noch nicht konnte oder war das nur noch nicht Standard?

Sherlock 25. Nov 2014 14:48

AW: Delphi-Version Grid Mausrad
 
Ich befürchte Mausräder wurden damals von kaum jemandem unterstützt. Das Rad gibt es seit 1995/96, Delphi 2 kam 1996 auf den Markt. Wenn man sich nun vergegenwärtigt, daß XE7 jetzt eingebaute Unterstützung für die Windows 7 Taskleiste erhalten hat....

Sherlock

arnof 26. Nov 2014 09:05

AW: Delphi-Version Grid Mausrad
 
wird das jetzt unterstützt ?

Ich mache das so, das geht seit Delphi 5 (getestet), Delphi 2 habe ich doch schon lange Entsorgt:

TApplicationEvents Komponente auf die Form, dann wandele ich die Drehrichtung in Cursor Up und down:

Code:
ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
var
    i: SmallInt;
begin
  if Msg.Message = WM_MOUSEWHEEL 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;
end;
Dann wird das Mausrad von jeder Komponente unterstützt ;-)

himitsu 26. Nov 2014 09:51

AW: Delphi-Version Grid Mausrad
 
Du hast das doch behandelt (Ja=True), warum dann aber
Delphi-Quellcode:
Handled := False;
?
Wenn jetzt in neueren Komponenten das plötzlich auch behandelt wird, dann würde doppelt gescrollt. :stupid:

Und das mit dem Scrollen, es kann uch sein, daß Delphi da garnichts macht, sondern daß es vom Windows behandelt wird.

baumina 26. Nov 2014 10:21

AW: Delphi-Version Grid Mausrad
 
Hab grad mal die alte Delphi2-Kiste angeworfen. Also WM_MOUSEWHEEL gabs da tatsächlich noch nicht. Auch TApplicationEvents gabs noch nicht.

himitsu 26. Nov 2014 10:34

AW: Delphi-Version Grid Mausrad
 
TApplicationEvents ist relativ neu.

Damit man nicht immer auf die Application.On...-Events gehen muß, wo man auch nur Einwas zuweisen kann, was blöd ist, wenn da vorallem Fremdkomponenten gern mal drauf gehen.
ApplicationEvents1.OnMessage = Application.OnMessage

arnof 26. Nov 2014 12:12

AW: Delphi-Version Grid Mausrad
 
Zitat:

Zitat von himitsu (Beitrag 1281120)
TApplicationEvents ist relativ neu.

Mindestens 15 Jahre in Delphi ;-)

Zitat:

Zitat von himitsu (Beitrag 1281109)
Du hast das doch behandelt (Ja=True), warum dann aber
Delphi-Quellcode:
Handled := False;
?
Wenn jetzt in neueren Komponenten das plötzlich auch behandelt wird, dann würde doppelt gescrollt. :stupid:

Und das mit dem Scrollen, es kann uch sein, daß Delphi da garnichts macht, sondern daß es vom Windows behandelt wird.

Handled := False; ist ja gerade der Trick, da die Message auf KEY_UP bzw KEY_DOWN geändert wird und die dann von der Komponente verarbeitet wird:


Beispiel TMemo, da läuft dann der Cursor dann auch mit dem Mausrad.

Eine doppelte verarbeitung wird automatisch unterbunden, da TApplicationEvents zuerst die Message bekommt!

himitsu 26. Nov 2014 12:15

AW: Delphi-Version Grid Mausrad
 
Stimmt, hab das irgendwie falsch gesehn ... du behandelst es ja nicht, sondern lässt es nur anders behandeln. :oops:


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