User Input: Difference between revisions

m
→‎{{header|Ruby}}: use the entry widget validate options
No edit summary
m (→‎{{header|Ruby}}: use the entry widget validate options)
Line 616:
<lang ruby>require 'tk'
 
def main
def validate_input(e1, e2)
root = TkRoot.new
if e2.value.to_i != 75_000
l1 = e2TkLabel.configurenew(root, "backgroundtext" => "red",input "foreground" =>a "whitestring") \
e1 = TkEntry.new(root)
.selection_range(0, "end") \
l2 = TkLabel.new(root, "text" => "input the number 75000")
.focus
e2 = TkEntry.new(root) do
validate "focusout"
validatecommand lambda {e2.value.to_i == 75_000}
invalidcommand lambda {focus_number_entry(e2)}
end
b ok = TkButton.new(root) do
text "OK"
def command lambda {validate_input(e1, e2)}
end
Tk.grid(l1, e1)
Tk.grid(l2, e2)
Tk.grid("x",bok, "sticky" => "w")
Tk.mainloop</lang>
end
 
def validate_input(text_entry, number_entry)
if e2number_entry.value.to_i != 75_000
focus_number_entry(number_entry)
else
puts %Q{You entered: "#{e1text_entry.value}" and "#{e2number_entry.value}"}
root.destroy
end
end
 
def focus_number_entry(widget)
root = TkRoot.new
widget \
l1 = TkLabel.new(root, "text" => "input a string")
.configure("background" => "red", "foreground" => "white") \
e1 = TkEntry.new(root)
.selection_range(0, "end") \
l2 = TkLabel.new(root, "text" => "input the number 75000")
.focus
e2 = TkEntry.new(root)
b = TkButton.new(root) do
text "OK"
command lambda {validate_input(e1, e2)}
end
 
main</lang>
Tk.grid(l1, e1)
Tk.grid(l2, e2)
Tk.grid("x",b, "sticky" => "w")
Tk.mainloop</lang>
 
=={{header|Tcl}}==
Anonymous user