Falsches Zusammenspiel EventWindow/EventGadget
PB 4.51 RC 1
Windows XP SP3
Unter gewissen umständen liefert bei 2 oder mehr Fenstern EventWindow() einen falschen Wert in Relation zu EventGadget().
Dieser Bug ist ziemlich hinterhältig und tritt nur auf, wenn genau folgender Ablauf stattfindet:
- Zwei (oder mehr) Fenster erstellen mit jeweils einem Editor-Gadget
- Zuerst in das Gadget des einen Fenster (A) klicken.
- Dann das andere Fenster (B) durch klicken aktivieren ohne dabei in das Editor-Gadget zu klicken! EventWindow() meldet nun Fenter B und EventGadget() meldet das Gadget aus Fenster A.
Code: Alles auswählen
; Window 0
OpenWindow(0,0,0,400,200,"0")
EditorGadget(0,0,0,200,200)
AddGadgetItem(0,-1,"Nicht mich anklicken!")
AddGadgetItem(0,-1,"Folge den Instruktionen in Fenter 1!")
; Window 1
OpenWindow(1,410,0,400,200,"1")
EditorGadget(1,0,0,400,200)
AddGadgetItem(1,-1,"1. Klicke in DIESES Gadget!")
AddGadgetItem(1,-1,"2. Aktiviere Fenster 0 (OHNE das Gadget anzuklicken)")
AddGadgetItem(1,-1,"")
AddGadgetItem(1,-1,"EventWindow() sagt Window 0")
AddGadgetItem(1,-1,"EventGadget() sagt Gadget 1")
AddGadgetItem(1,-1,"")
AddGadgetItem(1,-1,"Das ist falsch oder?")
AddGadgetItem(1,-1,"")
AddGadgetItem(1,-1,"Dies scheint nur unter genau")
AddGadgetItem(1,-1,"diesen Umständen zu geschehen:")
AddGadgetItem(1,-1,"Window 0 -> hat KEIN aktives Gadget")
AddGadgetItem(1,-1,"Window 1 -> hat EIN aktives Gadget")
; Eventloop
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Debug "EventWindow() = "+Str(EventWindow())
Debug "EventGadget() = "+Str(EventGadget())
; Debug "EventType() = "+Str(EventType())
Debug ""
Case #PB_Event_CloseWindow
End
EndSelect
ForEver