Программирование на языке Ruby.

12.3.4. Текстовые поля.

FOX располагает полезными средствами для ввода текста. В следующем примере демонстрируется применение класса FXTextField для редактирования одной строки. Параметры определяют формат текста. Значение TEXTFIELD_PASSWD скрывает текст, являющийся паролем, TEXTFIELD_REAL позволяет вводить только действительные числа в научной нотации, a TEXTFIELD_INTEGER — только целые числа.

Simple = FXTextField.new(main, 20, nil, 0,

 JUSTIFY_RIGHT|FRAME_SUNKEN|

 FRAME_THICK|LAYOUT_SIDE_TOP).

Simple.text = "Simple Text Field".

Passwd = FXTextField.new(main, 20, nil, 0,

 JUSTIFY_RIGHT|TEXTFIELD_PASSWD|

 FRAME_SUNKEN|FRAME_THICK|

 LAYOUT_SIDE_TOP).

Passwd.text = "Password".

Real = FXTextField.new(main, 20, nil, 0,

 TEXTFIELD_REAL|FRAME_SUNKEN|

 FRAME_THICK|LAYOUT_SIDE_TOP|

 LAYOUT_FIX_HEIGHT, 0, 0, 0, 30).

Real.text = "1.0E+3".

Int = FXTextField.new(main, 20, nil, 0, TEXTFIELD_INTEGER|

 FRAME_SUNKEN|FRAME_THICK|

 LAYOUT_SIDE_TOP|LAYOUT_FIX_HEIGHT,

 0, 0, 0, 30).

Int.text = "1000".

Ниже показан простой способ ввода текста с помощью диалогового окна. В зависимости от выбранного метода можно будет вводить любой текст, только действительные или только целые числа.

Puts FXInputDialog.getString("initial text",

 self, "Диалог для ввода текст",

 "Введите текст:", nil).

Puts FXInputDialog.getInteger(1200, self,

 "Диалог для ввода целого числа",

 "Введите целое число:", nil).

Puts FXInputDialog.getReal(1.03е7, self,

 "Диалог для ввода числа в научной нотации",

 "Введите действительное число:", nil).

Для экономии места мы не станем приводить полный текст приложения. Но, конечно, перед выводом диалогового окна необходимо выполнить обычную инициализацию.