SKUI - Retrieve text from Textbox when clicking button
-
I'm trying SKUI and I have created a Window with a Textbox in this way:
w = SKUI;;Window.new txt_box = SKUI;;Textbox.new( "" ) txt_box.name = ;txt_name txt_box.position( 155, 27 ) txt_box.width = 200 w.add_control( txt_box ) label = SKUI;;Label.new( 'Label', txt_box ) label.position( 10, 30 ) w.add_control( label ) btn_cancel = SKUI;;Button.new( 'Cancel' ) { |control| return nil control.window.close } btn_cancel.position( -5, -5 ) w.add_control( btn_cancel ) btn_ok = SKUI;;Button.new( 'OK' ) { |control| control.window.close } btn_ok.position( -100, -5 ) w.add_control( btn_ok ) w.cancel_button = btn_cancel w.default_button = btn_ok w.show
After that, I type something in the Textbox and I would like to retrieve the string when I click btn_ok. I know the string should be in txt_box.value, but I don't know how to update the value of the TextBox when clicking a button. It is always empty. Do you know how to do it?
-
Better ask ThomThom, he knows.
-
@sdmitch I've already fixed it. Thank you anyway.
-
Local references go out of scope and are garbage collected when a method ends.
You need to have some persistent references within your plugin's scope (module or class) to accept the values. This also means you need to use persistent reference for the dialog itself (ie,@w
notw
.)btn_ok = SKUI;;Button.new( 'OK' ) {|control| @txt_box_value = txt_box.value control.window.close }
-
Exactly Dan, that was one of my mistakes. Finally I got it by myself, and now I understand the basics. Thank you in any case.
Advertisement