Unterstützt PB 5.11 das Mausrad nicht mehr?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Lothar Schirm
Beiträge: 41
Registriert: 30.04.2012 16:38

Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von Lothar Schirm »

Liebes Forum,

habe folgendes kleines Testprogramm für das Canvasgadget geschrieben:

Code: Alles auswählen

EnableExplicit

Define event

Enumeration
  #Window_0
EndEnumeration

Enumeration
  #Canvas_0
EndEnumeration

OpenWindow(#Window_0, 0, 0, 500, 500, "Maus-Test im CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(#Canvas_0, 50, 50, 400, 400, #PB_Canvas_Border | #PB_Canvas_ClipMouse)

Repeat
  
  event = WaitWindowEvent()
  
  If event = #PB_Event_Gadget And EventGadget() = #Canvas_0
     
    Select EventType()
      Case #PB_EventType_MouseEnter 
        Debug "Der Maus-Cursor betrat das Gadget"
      Case #PB_EventType_MouseLeave
        Debug "Der Maus-Cursor verließ das Gadget"
;       Case #PB_EventType_MouseMove
;         Debug "Der Maus-Cursor bewegte sich"
      Case #PB_EventType_MouseWheel
        Debug "Das Maus-Rad wurde bewegt - scheint nicht zu funktionieren"
        Debug GetGadgetAttribute(#Canvas_0, #PB_Canvas_WheelDelta)
;       Case #PB_EventType_LeftButtonDown
;         Debug "Der linke Maus-Knopf wurde gedrückt"
;       Case #PB_EventType_LeftButtonUp
;         Debug "Der linke Maus-Knopf wurde los gelassen"
      Case #PB_EventType_LeftClick
        Debug "Ein Klick mit der linken Maus-Taste"
        Debug "x = " + Str(GetGadgetAttribute(#Canvas_0, #PB_Canvas_MouseX))
        Debug "y = " + Str(GetGadgetAttribute(#Canvas_0, #PB_Canvas_MouseY)) 
;       Case #PB_EventType_LeftDoubleClick
;         Debug "Ein Doppelklick mit der linken Maus-Taste"
;       Case #PB_EventType_RightButtonDown
;         Debug "Der rechte Maus-Knopf wurde gedrückt"
;       Case #PB_EventType_RightButtonUp
;         Debug "Der rechte Maus-Knopf wurde los gelassen"
      Case #PB_EventType_RightClick
        Debug "Ein Klick mit der rechten Maus-Taste"
;       Case #PB_EventType_RightDoubleClick
;         Debug "Ein Doppelklick mit der rechten Maus-Taste"
;       Case #PB_EventType_MiddleButtonDown
;         Debug "Der mittlere Maus-Knopf wurde gedrückt"
;       Case #PB_EventType_MiddleButtonUp 
;         Debug "Der mittlere Maus-Knopf wurde los gelassen"
    EndSelect
  EndIf
  
Until event = #PB_Event_CloseWindow

End
 
Funktioniert ganz gut (auch die auskommentierten Programmzeilen), nur beim MouseWheel-Event passiert nichts. Sollte laut Dokumentation aber gehen. Mein Mausrad geht physikalisch auch, ich habe es zum Scrollen im in einem EditorGadget getestet und auch mit einem FreeBASIC-Progrämmchen.

Wer weiß etwas? Ist das ein Bug? :angry:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von ts-soft »

Das Flag: #PB_Canvas_Keyboard muß gesetzt sein. Ausserdem ist ein Klick in das Canvas erforderlich,
bevor Wheel bemerkt wird (das könnte aber auch Maustreiber abhängig sein).
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von NicTheQuick »

ts-soft hat geschrieben:Das Flag: #PB_Canvas_Keyboard muß gesetzt sein. Ausserdem ist ein Klick in das Canvas erforderlich,
bevor Wheel bemerkt wird (das könnte aber auch Maustreiber abhängig sein).
Das stimmt für Linux beides nicht. Ich muss weder "#PB_Canvas_Keyboard" setzen, noch muss das Fenster aktiviert sein. Aber unter Windows ist es allgemein nötig ein Fenster zu aktivieren, bevor man darin scrollen kann, was mich letztens mehr als genervt hat, als ich unter Windows arbeiten musste. Zum Glück gibt es Wizmouse. :wink:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von ts-soft »

@NicTheQuick
Das ist in Linux ja auch unbedingt notwendig, da die intelligenten Anfasser von Scrollbars, sich nie zeigen, wenn man
sie benutzen möchte, sondern immer nur dann, wenn sie im Wege stehen :mrgreen:
Hat alles seine 2 Seiten.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von NicTheQuick »

ts-soft hat geschrieben:@NicTheQuick
Das ist in Linux ja auch unbedingt notwendig, da die intelligenten Anfasser von Scrollbars, sich nie zeigen, wenn man
sie benutzen möchte, sondern immer nur dann, wenn sie im Wege stehen :mrgreen:
Hat alles seine 2 Seiten.
Das kommt immer noch auf den Window-Manager an, den du benutzt. ;) Ich sehe meine Scrollbars jedenfalls immer. Ich kann mich auch nicht damit anfreunden, dass die verschwinden, wenn ich sie angeblich nicht brauche. Deswegen nutze ich auch kein reines Ubuntu mehr. Außerdem ging es ja darum, dass das Fenster nicht aktiviert sein muss. Ob man die Scrollbar nun sieht oder nicht, hat damit ja nichts zu tun.

Aber davon mal abgesehen ist es doch merkwürdig, dass man unter Linux anscheinend das Flag nicht setzen muss. Was hat das überhaupt mit dem Keyboard zu tun?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von DarkDragon »

NicTheQuick hat geschrieben:
ts-soft hat geschrieben:@NicTheQuick
Das ist in Linux ja auch unbedingt notwendig, da die intelligenten Anfasser von Scrollbars, sich nie zeigen, wenn man
sie benutzen möchte, sondern immer nur dann, wenn sie im Wege stehen :mrgreen:
Hat alles seine 2 Seiten.
Das kommt immer noch auf den Window-Manager an, den du benutzt. ;)
Selbst wenn man Gnome installiert und verwendet sind sie immer noch dieselben. Es ist also wohl Ubuntu spezifisch. Man muss die Overlay-Scrollbars selbst deaktivieren.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Lothar Schirm
Beiträge: 41
Registriert: 30.04.2012 16:38

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von Lothar Schirm »

ts-soft hat geschrieben:
"Das Flag: #PB_Canvas_Keyboard muß gesetzt sein. Ausserdem ist ein Klick in das Canvas erforderlich, bevor Wheel bemerkt wird (das könnte aber auch Maustreiber abhängig sein)."

Ich arbeite mit Windows. Mit dem #PB_Canvas_Keyboard-Flag funktioniert es, das finde ich aber abartig. Was hat das Mausrad mit dem Keyboard zu tun? Die anderen Maus-Abfragen funktionieren ja ohne dieses Flag. Es ist auch nicht dokumentiert, dass man es braucht.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von ts-soft »

Dann muß die Doku wohl ergänzt werden, das es Windows-Spezifisch einschränkungen gibt.
Ohne Fokus kein Wheel in Windows, wobei ich damit besser klarkomme, als die Regelung unter
Linux, aber das ist alles eine Frage des "Geschmacks" (hmm, lecker mousewheels mit gerieb. Käse :mrgreen: )
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Shardik
Beiträge: 752
Registriert: 25.01.2005 12:19

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von Shardik »

Lothar Schirm hat geschrieben:Es ist auch nicht dokumentiert, dass man es braucht.
PB-Hilfe zum CanvasGadget hat geschrieben:Beachten Sie bitte, dass die Ereignisse #PB_EventType_KeyDown, #PB_EventType_KeyUp und #PB_EventType_Input nur gemeldet werden, wenn das Gadget den Tastatur-Fokus hat. Dies bedeutet, dass das #PB_Canvas_Keyboard Flag bei der Erstellung des Gadgets gesetzt werden muss, um Tastatur-Ereignisse zu erlauben. Auf Windows wird das #PB_EventType_MouseWheel Ereignis auch nur gemeldet, wenn das Gadget den Tastatur-Fokus hat.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Unterstützt PB 5.11 das Mausrad nicht mehr?

Beitrag von ts-soft »

@Shardik

Das hab ich wohl auch übersehen, bin nur drauf gekommen, da ich windows ein bissel kenne :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten