
-----------------------------------
qprime
Fri Apr 02, 2004 11:38 am

turing gui help
-----------------------------------
is there a way to pass a variable from gui button or menu to a procedure? i tried adding another paramater but it would not accept it.

-----------------------------------
Delos
Fri Apr 02, 2004 11:57 am


-----------------------------------
Please expand a bit on this.
What exactly do you mean?  Post your code (with the [code] tags) so that we can better understand your question.

Generally, use the GUI.Get... commands to get data about the widgets.  However, I'm sensing that this is not what you're asking.

As a guess, you could do something like this:

[code]
import GUI

var num1 : int := 0
% Variable to be changed by buttons.
var b1, b2 : int

proc b1proc
num1 += 1
% add to num1.
end b1proc

proc b2proc
GUI.Quit
end b2proc

b1 := GUI.CreateButton (100, 100, 20, "1", b1proc)
b2 := GUI.CreateButton (150, 100, 20, "X", b2proc)

loop
exit when GUI.ProcessEvent
end loop

put num1
[/code]


That would 'pass' a variable by the button to the outside...sorta...

-----------------------------------
Tony
Fri Apr 02, 2004 3:01 pm


-----------------------------------
what kind of variable are we talking about here? Button doesn't exactly have much info (well... atleast not in turing since nothing is exported and everything is constants anyways)

-----------------------------------
qprime
Fri Apr 02, 2004 3:45 pm


-----------------------------------
i want to load information from an array into a menu, then when the user clicks on a menu button it loads a proc that does something with the value of the menu button but i dont want to have 20 procs, one for each item.

-----------------------------------
Delos
Fri Apr 02, 2004 5:03 pm


-----------------------------------
Hmm...chances are that the you will need 20 procs...but you could cut down a bit using this:

- all buttons/menu items refer to one central proc
- for buttons, this will check their X/Y values (GUI.GetX...) and accordingly run a procedure.

Yeah...it doensn't do much.  Turing is like that, you'll probably need those 20 procs.

-----------------------------------
Tony
Fri Apr 02, 2004 9:35 pm


-----------------------------------
eh... does this help in any way?

proc something(num:int)
     put num
end something

var value:int := 5

b := GUI.CreateButton (100, 100, 20, "press me", something(value))

?
