GUI component interaction: Difference between revisions

Content added Content deleted
(add example for julia)
Line 892: Line 892:
}
}
}</lang>
}</lang>

=={{header|R}}==
<lang julia>
using Tk
w = Toplevel("Component Interaction Example")
fr = Frame(w)
pack(fr, {:expand=>true, :fill => "both"})
## The task: For a minimal "application", write a program that
## presents a form with three components to the user: A numeric input
## field ("Value") and two buttons ("increment" and "random").

value = Entry(fr, "")
increment = Button(fr, "Increment")
random = Button(fr, "Random")

formlayout(value, "Value:")
formlayout(increment, " ")
formlayout(random, " ")

set_value(value, "0") ## The field is initialized to zero.

tk_bind(increment, "command") do path ## increment its value with the "increment" button.
val = get_value(value) | float
set_value(value, string(val + 1))
end


function validate_command(path, P)
try
if length(P) > 0 parsefloat(P) end
tcl("expr", "TRUE")
catch e
tcl("expr", "FALSE")
end
end
function invalid_command(path, W)
println("Invalid value")
tcl(W, "delete", "@0", "end")
end
tk_configure(value, {:validate=>"key", :validatecommand=>validate_command, :invalidcommand=>invalid_command })

## Pressing the "random" button presents a confirmation dialog, and resets the field's value to a random value if the answer is "Yes".
tk_bind(random, "command") do path
out = Messagebox(w, "Randomize input", "Select a new random number?")
if out == "ok"
new_value = floor(100*rand(1))[1]
set_value(value, string(new_value))
end
end
</lang>

=={{header|Liberty BASIC}}==
=={{header|Liberty BASIC}}==
===Input Verification===
===Input Verification===