AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi OnMouseWheel wird an Hintergrund-App weitergeleitet
Thema durchsuchen
Ansicht
Themen-Optionen

OnMouseWheel wird an Hintergrund-App weitergeleitet

Ein Thema von DenkDirNix · begonnen am 15. Jan 2024 · letzter Beitrag vom 16. Jan 2024
Antwort Antwort
Seite 1 von 2  1 2      
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
DenkDirNix

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

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 07:31
Hm, das Thema scheint wohl nicht so interessant zu sein.
Oder von mir zu schlecht beschrieben, nicht reproduzierbar?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.592 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 07:46
Das ist ein Effekt, der zum Glück nicht direkt mit MDI zu tun hat, der unter Windows 10 auftritt. Zum Glück, weil es unter Windows 11 gefixt wurde. Das passiert mit Delphi 11 wie mit Delphi 12.

MDI ist hoffnungslos veraltet, wird von Microsoft nicht mehr gefixt und nicht mehr weiterentwickelt. Es hat sehr viele bekannte Bugs, die aber nicht mehr gefixt werden. Im Grunde ist das Setzen auf MDI heute so wie das Setzen auf die BDE für Datenbankzugriffe. Man kann nur hoffen, dass es einigermaßen läuft, muss aber jederzeit damit rechnen, dass die Anwendung mit dem nächsten Windows Update gar nicht mehr läuft. Für geschäftliche Zwecke kann man daher beides kaum mehr verwenden.

Nichtsdestotrotz gab es in Delphi selbst mit Delphi 12 einige Verbesserungen, aber das ändert nichts an den Bugs in Windows zu dem Thema, die außerhalb der Reichweite der Delphientwickler liegen.

Hm, das Thema scheint wohl nicht so interessant zu sein.
Wir reden von MDI...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.085 Beiträge
 
Delphi 12 Athens
 
#4

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 09:43
In den Mauseigenschaften gibt es eine Option "Inaktive Fenster beim Draufzeigen scrollen", heißt so z.B. in den Win10-Mauseinstellungen. (ich glaub hieß mal sowas wie "Das unter der Maus scrollen")

Das vielleicht mal umstellen?

Ansonsten bleibt dir wohl nur, es im Hauptfenster abzufangen und es an das für Delphi (nicht Windows) "aktive" Unterfenster weiterzuleiten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
DenkDirNix

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

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 10:33
Ansonsten bleibt dir wohl nur, es im Hauptfenster abzufangen und es an das für Delphi (nicht Windows) "aktive" Unterfenster weiterzuleiten.
Das hast Du wohl mißverstanden:
Es kommt weder im MDI-Child noch im Hauptfenster an, sondern in einer fremden, zufällig darunterliegenden Anwendung!
Einfach mal reproduzieren (mit Win10, denn nach Jänickes Kommentar in Win11 wohl nicht mehr auftretend).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.085 Beiträge
 
Delphi 12 Athens
 
#6

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 10:40
Ich habe hier eine MDI-Anwendung und konnte sowas noch nicht feststellen.
XE und D10 bis D12 in Win10 und via RDP.

In Win11 noch nicht oft mit diesem Programm gearbeitet, aber es gab die letzten Jahre mehrere Versuche damit, und da war nichts diesbezüglich aufgefallen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.592 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 10:52
Ich kann es unter Windows 10 problemlos nachstellen. Hast du die Demoanwendung ausprobiert?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.085 Beiträge
 
Delphi 12 Athens
 
#8

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 11:36
Neee, dachte eine noch schlimmere MDI-Anwendung reicht aus.


Joar, LockDrawing ist Schuld.
Wird schnell gescrollt und es erwischt die kurze Lücke, dann rauschen einige Messages durch's Fenster.



PS: Bei mir ist "Inaktive Fenster beim Draufzeigen scrollen" im Windows aktiv.

Schalte ich das ab, dann wird immer nur im MDI-Child gescrollt.
Nichts geht durch und in der Hauptform wird auch nie gescrollt.

Mit der aktiven Option, wird auch im Hauptfenster gescrollt, wenn die Maus drüber liegt, und dort geht nichts durch, zu anderen Anwendungen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (16. Jan 2024 um 11:46 Uhr)
  Mit Zitat antworten Zitat
DenkDirNix

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

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 18:50
Neee, dachte eine noch schlimmere MDI-Anwendung reicht aus.
"Schlimm" ist halt relativ, es kommt schon auf die ganz oben genannten 4 Bedingungen an die für den Fehler alle erfüllt sein müssen.

Die Windows-Einstellung zu ändern kommt natürlich nicht in Frage, wie auch hier im Forum oft gesagt wird.
Ich werde wohl das LockDrawing() aus-IF-fen müssen wenn ich übers MouseWheel-Event hineinkomme.
Und das UnlockDrawing() dann am besten auch
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.085 Beiträge
 
Delphi 12 Athens
 
#10

AW: OnMouseWheel wird an Hintergrund-App weitergeleitet

  Alt 16. Jan 2024, 18:53
Unbedingt, sonst stimmt die Referenzzählung nicht mehr ... das zählt mit, wie oft diese Funktionen rekursiv verschachtelt ausgerufen wurden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 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