Einzelnen Beitrag anzeigen

DenkDirNix

Registriert seit: 13. Dez 2018
69 Beiträge
 
Delphi 11 Alexandria
 
#1

OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 15. Jan 2024, 09:46
Delphi-Version: 11 Alexandria
Hallo Welt,
ich habe eine alte Anwendung etwas aufgefrischt und jetzt folgendes

Verhalten:
Beim (schnelleren) Bewegen des Mausrades über dem MDI-Child-Fenster der Anwendung wird das Mausrad-Event an eine ggf darunter liegende andere Anwendung (z.B. Commander oder Delphi-Editor) weitergeleitet (unter Windows10).

NOTWENDIGE RANDBEDINGUNGEN (reduzierte Source anliegend):
- OnMouseWheel() für MDI-Child definiert
- Darin wird in eine Methode der MDI-Form gesprungen
- Deren Inhalt ist mit Lock- und UnlockDrawing() umgeben
- ... und läuft relativ lange, hier durch Sleep() simuliert

VERMUTUNG:
Da das Problem beim langsamen (eine Rasterstufe) Drehen am Rad nicht auftritt vermute ich mal, dass
- das erste OnMouseWheel-Event normal ankommt und verarbeitet wird
- das zweite (auf Windows-Ebene) kommt und auf die noch beschäftigte Bearbeitung trifft
- ... und das Windows deshalb die Anwendung als nicht existent ansieht und das Event an die darunterliegende sendet.

Ist nur eine gewagte Theorie, aber damit wäre es halt kein Delphi-Problem.
In Delphi12 ist am MDI ja geändert worden, kann jemand das da mal testen?
Angehängte Dateien
Dateityp: zip MouseWheelMDI.zip (2,1 KB, 5x aufgerufen)

Geändert von DenkDirNix (15. Jan 2024 um 17:06 Uhr) Grund: Im Code "OnResize" durch "OnActivate" ersetzt, nur weils realitätsnäher ist
  Mit Zitat antworten Zitat