Hi All,
I have taken a "bad habit" by always using LBB to make my programs
But when it comes to a problem I can't solve by myself and need help that might come from the LB forum, I have to go "back" to LB.
I have made a program that will use multiple windows, 3 in all but for now, let's do it with 2.
I can make it work in LBB but not in LB....and I don't know how to do it in LB
Here is my extremely simplified code working in LBB. For now, it doesn't do anything else but opening the FIRST or the SECOND window at will.
NOMAINWIN
[FIRST]
WindowWidth = 400
WindowHeight = 200
UpperLeftX = int((DisplayWidth-WindowWidth)/2)
UpperLeftY = int((DisplayHeight-WindowHeight)/2)
MENU #FIRST,"Windows","First",[FIRST],"Second",[SECOND]
MENU #FIRST,"Exit","Exit",[QUIT.ALL]
STATICTEXT #FIRST, "FIRST WINDOW", 20, 10,200, 20
CLOSE #SECOND
OPEN "FIRST WINDOW" FOR window_nf AS #FIRST
#FIRST "TRAPCLOSE [QUIT.ALL]"
WAIT
[SECOND]
WindowWidth = 400
WindowHeight = 200
UpperLeftX = int((DisplayWidth-WindowWidth)/2)
UpperLeftY = int((DisplayHeight-WindowHeight)/2)
MENU #SECOND,"Windows","First",[FIRST],"Second",[SECOND]
MENU #SECOND,"Exit","Exit",[QUIT.ALL]
STATICTEXT #SECOND, "SECOND WINDOW", 20, 10,200, 20
CLOSE #FIRST
OPEN "SECOND WINDOW" FOR window_nf AS #SECOND
#SECOND "TRAPCLOSE [QUIT.ALL]"
WAIT
[QUIT.ALL]
CLOSE #SECOND
CLOSE #FIRST
END
This is the error message I get when using the same code in LB4.5.1 editor.
Can I make this work in LB4?
Opening multiple windows
Re: Opening multiple windows
LB4 doesn't like you 'closing' a window that isn't open, so you will need to introduce a couple of Boolean variables (I have called them FirstOpen and SecondOpen) which keep track of which window is open. That way you can avoid trying to close a window that isn't open.
There may be a more elegant solution, but this seems to work:
Code: Select all
NOMAINWIN
[FIRST]
IF FirstOpen = 0 THEN
WindowWidth = 400
WindowHeight = 200
UpperLeftX = int((DisplayWidth-WindowWidth)/2)
UpperLeftY = int((DisplayHeight-WindowHeight)/2)
MENU #FIRST,"Windows","First",[FIRST],"Second",[SECOND]
MENU #FIRST,"Exit","Exit",[QUIT.ALL]
STATICTEXT #FIRST, "FIRST WINDOW", 20, 10,200, 20
IF SecondOpen THEN CLOSE #SECOND : SecondOpen = 0
OPEN "FIRST WINDOW" FOR window_nf AS #FIRST
FirstOpen = 1
#FIRST "TRAPCLOSE [QUIT.ALL]"
END IF
WAIT
[SECOND]
IF SecondOpen=0 THEN
WindowWidth = 400
WindowHeight = 200
UpperLeftX = int((DisplayWidth-WindowWidth)/2)
UpperLeftY = int((DisplayHeight-WindowHeight)/2)
MENU #SECOND,"Windows","First",[FIRST],"Second",[SECOND]
MENU #SECOND,"Exit","Exit",[QUIT.ALL]
STATICTEXT #SECOND, "SECOND WINDOW", 20, 10,200, 20
IF FirstOpen THEN CLOSE #FIRST : FirstOpen = 0
OPEN "SECOND WINDOW" FOR window_nf AS #SECOND
SecondOpen = 1
#SECOND "TRAPCLOSE [QUIT.ALL]"
END IF
WAIT
[QUIT.ALL]
IF SecondOpen THEN CLOSE #SECOND
IF FirstOpen THEN CLOSE #FIRST
END
Re: Opening multiple windows
Thanks.
I read an article from Gordon SWEET (http://www.libertybasicuniversity.com/l ... /multi.htm) and didn't understood why he used his "win1" "win2" etc "trackers". Now, you explaining it does make sense to me.
I'll give it a try asap (tomorrow morning).
Thanks again for the quick reply
I read an article from Gordon SWEET (http://www.libertybasicuniversity.com/l ... /multi.htm) and didn't understood why he used his "win1" "win2" etc "trackers". Now, you explaining it does make sense to me.
I'll give it a try asap (tomorrow morning).
Thanks again for the quick reply