ich bin mir nicht sicher, ob das ein Bug ist, oder seit neuestem ein Feature. Bei Purebasic 5.11 trat dieses Verhalten jedenfalls nicht auf.
Folgendes passiert:
Nachdem ein Unterfenster geöffnet und dann mit CloseWindow geschlossen wurde, tritt für dieses Fenster noch ein Event auf, und zwar #PB_Event_Repaint.
Das erscheint mir unlogisch, da das Fenster zu diesem Zeitpunkt ja bereits geschlossen wurde und tritt unter PB5.11 nicht auf. Das Beispiel unten provoziert diesen Effekt.
Windows7; PB5.20b13
Code: Alles auswählen
;
Global WIsOpened.l
;
If OpenWindow(0, 100, 100, 300, 300, "Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar)
ButtonGadget(10, 20, 20, 100, 35, "Test")
TextGadget(11, 20, 60, 200, 35, ":")
;
EndIf
;
WIsOpened.l = 0
PRGQuit.l = 0
;
Repeat
;
WinEvent.l = WaitWindowEvent()
WinEventID.l = EventWindow()
;
Select WinEventID.l
Case 0 ; Main Window
;
Select WinEvent.l
Case #PB_Event_Gadget
If EventGadget() = 10 And WIsOpened.l = 0 ; Button Pressed
If OpenWindow(1, 120, 120, 200, 200, "SubWindow", #PB_Window_SystemMenu, WindowID(0))
TextGadget(12, 20, 20, 150, 35, "Test")
WIsOpened.l = 1
;
EndIf
;
EndIf
;
Case #WM_CLOSE
PRGQuit.l = 1
;
EndSelect
;
Case 1 ; SubWindow
;
Select WinEvent.l
Case #PB_Event_CloseWindow
CloseWindow(1)
WIsOpened.l = 0
;
EndSelect
;
If WIsOpened.l = 0
SetGadgetText(11, "SubWinEvent: " + Str(WinEvent.l))
EndIf
;
EndSelect
;
Until PRGQuit.l
;
CloseWindow(0)
;
End