GUI Text Field Help
| Author |
Message |
jamonathin

|
Posted: Mon Jan 23, 2006 11:45 am Post subject: GUI Text Field Help |
|
|
Hey all, for some reason i cant get my textfields to work right. I set up an example program of what is wrong.
There are 2 textfields, the user puts a value into one of them, and hits the button, which is supposed to double the inputed value and put it into the other text field. Only this code doesn't work
| code: | import GUI
var xValue, yValue : real := 1
var box1, box2, button : int
procedure fieldEntered1 (text : string)
GUI.SetSelection (box1, 0, 0)
GUI.SetActive (box1)
end fieldEntered1
procedure fieldEntered2 (text : string)
GUI.SetSelection (box2, 0, 0)
GUI.SetActive (box2)
end fieldEntered2
proc redoFields
box1 := GUI.CreateTextField (100, 100, 100, intstr (round (xValue)), fieldEntered1)
box2 := GUI.CreateTextField (100, 200, 100, intstr (round (yValue)), fieldEntered2)
end redoFields
procedure buttonHit
if strint (GUI.GetText (box1)) = 1 then
xValue := yValue * 2
elsif strint (GUI.GetText (box2)) = 1 then
yValue := xValue / 2
end if
GUI.Dispose (box1)
GUI.Dispose (box2)
redoFields
end buttonHit
redoFields
button := GUI.CreateButton (300, 100, 0, "button", buttonHit)
loop
exit when GUI.ProcessEvent
end loop
|
any help is appreciated |
|
|
|
|
 |
Sponsor Sponsor

|
|
 |
Clayton

|
Posted: Tue Jan 24, 2006 2:13 am Post subject: (No subject) |
|
|
i got the code to work according to what you said you wanted it to do so here it is hope it helps
| code: |
import GUI
var xValue, yValue : int := 1
var box1, box2, button : int
procedure fieldEntered1 (text : string)
GUI.SetSelection (box1, 0, 0)
GUI.SetActive (box1)
end fieldEntered1
procedure fieldEntered2 (text : string)
GUI.SetSelection (box2, 0, 0)
GUI.SetActive (box2)
end fieldEntered2
proc fields
box1 := GUI.CreateTextField (100, 100, 100, intstr (round (xValue)), fieldEntered1)
box2 := GUI.CreateTextField (100, 200, 100, intstr (round (xValue * 2)), fieldEntered2)
end fields
procedure buttonHit
xValue := strint (GUI.GetText (box1))
GUI.Dispose (box1)
GUI.Dispose (box2)
fields
end buttonHit
fields
button := GUI.CreateButton (300, 100, 0, "button", buttonHit)
loop
exit when GUI.ProcessEvent
end loop
|
there you go |
|
|
|
|
 |
jamonathin

|
Posted: Tue Jan 24, 2006 2:29 pm Post subject: (No subject) |
|
|
Ok that works, but my dilema is, what if I enter the information in the top field? Lets look at it this way, its a way to convert money, lets say canadian to US. Now, what if i have $20 US, and i want this button to convert it into canadian, or what if i have $15 CDN and i want the button to convert it to american.
Where the top field would represent american, and the bottom field would represent canadian.  |
|
|
|
|
 |
jamonathin

|
Posted: Wed Jan 25, 2006 12:21 pm Post subject: (No subject) |
|
|
I have it now, so thanks n e ways for ur help, anyone wonderin how, heres the code . .
| code: | import GUI
var xValue, yValue, xOld, yOld : int := 0
var box1, box2, button : int
procedure fieldEntered1 (text : string)
GUI.SetSelection (box1, 0, 0)
GUI.SetActive (box1)
end fieldEntered1
procedure fieldEntered2 (text : string)
GUI.SetSelection (box2, 0, 0)
GUI.SetActive (box2)
end fieldEntered2
proc fields
box1 := GUI.CreateTextField (100, 100, 100, intstr (round (xValue)), fieldEntered1)
box2 := GUI.CreateTextField (100, 200, 100, intstr (round (yValue)), fieldEntered2)
end fields
procedure buttonHit
xValue := strint (GUI.GetText (box1))
yValue := strint (GUI.GetText (box2))
if xValue = xOld then
xValue := round (yValue / 2)
elsif yValue = yOld then
yValue := xValue * 2
else
xValue := 0
yValue := 0
end if
xOld := xValue
yOld := yValue
GUI.Dispose (box1)
GUI.Dispose (box2)
fields
end buttonHit
fields
button := GUI.CreateButton (300, 100, 0, "button", buttonHit)
loop
exit when GUI.ProcessEvent
end loop
|
|
|
|
|
|
 |
Clayton

|
Posted: Wed Jan 25, 2006 3:26 pm Post subject: (No subject) |
|
|
| glad you fixed that up, i didnt know that you wanted to be able to input into both fields but kool gj |
|
|
|
|
 |
|
|