[MaxGUI] multiple windows...
BlitzMax Forums/BlitzMax Beginners Area/[MaxGUI] multiple windows...
| ||
| I have a new problem :) I have a main window and a secondary window. If I close the secondary window the program intercept the event 'Close window' and stop the program. How can I know WHO is the Source of the close event? I tried with EventSource() that should return the source object but I have an error...or probably I miss something! Please clarify me! Thanks
Global win_main:tgadget
Global win_opt:tgadget
win_main=CreateWindow("Main Window",50,50,200,200)
win_opt=CreateWindow("Option",100,100,100,100)
While WaitEvent()
evID=EventID()
evsource=EventSource()
Select EventID()
Case EVENT_WINDOWCLOSE
evSource=EventSource()'???? <---tgadget(EventSource())?
evID=EventID()
If evSource=win_opt And win_opt<>0 FreeGadget win_opt
If evSource=win_main
If win_opt<>Null FreeGadget win_opt
FreeGadget win_main
End
End If
EndSelect
Wend
|
| ||
Is this what you mean?
Global Window1:TGadget = CreateWindow("Window 1", 100,100,400,400)
Global Button1:TGadget = CreateButton("Show", 10,10,100,25, Window1)
Global Window2:TGadget = CreateWindow("Window 2", 550, 100, 400,400)
While Not quit
WaitEvent()
Select EventID()
Case EVENT_WINDOWCLOSE
Select EventSource()
Case Window1
quit = True
Case Window2
HideGadget(Window2)
End Select
Case EVENT_GADGETACTION
Select EventSource()
Case Button1
ShowGadget(Window2)
End Select
End Select
Wend
End
|
| ||
| Ok works fine, thank you very much! At last I found were I was wrong.. evSource:Object=EventSource() If evSource=window2 And window2<>Null FreeGadget window2 I missed to declare evSource as Object...many thanks!!! |