require 'tk' def getfile( msg ) file = Tk.getOpenFile msg.text( file ) end msg = TkMessage.new.pack TkButton.new(nil, 'text'=>'get file name', 'command'=>proc{ getfile(msg) }).pack Tk.mainloop