§ 3. Проектирование интерфейса оконного приложения с использованием элементов управления

3.4. Элемент управления Edit (текстовое поле)

Edit (текстовое поле) — компонент, который предназначен для ввода и вывода текстовой информации. На панели компонентов Standard текстовое поле изображено в виде , имя объекта — Edit.

Компонент Edit, помещенный на форму, получает имя  EditN, где N — номер 1, 2, 3… (пример 3.10).

В отличие от других рассмотренных компонентов, компонент Edit не обладает свойством Caption. Некоторые свойства компонента Edit приведены в таблице (пример 3.11).

Значение свойства Text можно задать на этапе конструирования, изменив его в инспекторе объектов. При выполнении программы пользователь, который вводит текст в компонент Edit, меняет значение свойства Text. Также свойство Text компонента Edit может изменяться программно. Основным событием компонента Edit является OnChange, которое происходит при изменении компонента. Наиболее часто программируют событие OnKeyPress, которое позволяет определить, какая клавиша была нажата.

Пример 3.12. Создать проект, в котором пользователя попросят ввести его имя (например, Елизавета), а затем, после нажатия клавиши Enter, будет выдано сообщение «Елизавета, приятно с Вами познакомиться!».

Этапы выполнения задания

  1. Изменить свойство Caption у формы на «Знакомство».
  2. Разместить на форме две метки и текстовое поле.
  3. Изменить свойство Caption у Label1 на «Введите свое имя и нажмите клавишу Enter».
  4. Очистить поле свойства Caption у Label2.
  5. Очистить поле свойства Text у Edit1.
  6. Написать обработчик события OnKeyPress для компонента Edit1, который будет проверять нажатие клавиши ввода (код клавиши Enter — 13). Если клавиша нажата, то поменять свойство Caption у Label2:

  if key = #13 then
Label2.Caption := Edit1.Text +
', приятно с Вами познакомиться!';

Текстовое поле Edit используется также для ввода и вывода чисел. При этом необходимо использовать функции для преобразования строк в числа и чисел в строки. Эти функции приведены в таблице (пример 3.13).

В PascalABC используются эти же функции для преобразования строковых данных в числовые и наоборот.

В русскоязычной версии Windows в качестве разделителя целой и дробной части числа по умолчанию используется запятая. Если при вводе чисел в текстовые поля использовать точку, то будет возникать ошибка преобразования типов.

Пример 3.14. Создать проект, в котором пользователь сможет ввести число, получить его значение в квадрате и квадратный корень из этого числа.

Этапы выполнения задания

  1. Изменить свойство Caption у формы на «Квадрат и корень».
  2. Разместить на форме три метки, три текстовых поля и кнопку.
  3. У компонентов Edit1, Edit2, Edit3 очистить поле свойства Text.
  4. Изменить свойство Caption у Label1 на «Введите неотрицательное число». Для размещения текста в две строки необходимо установить значение True у свойства WordWrap.
  5. Изменить свойство Caption у Label2 на «Квадрат числа».
  6. Изменить свойство Caption у Label3 на «Корень из числа».
  7. Изменить свойство Caption у Button1 на «Расчет».
  8. Написать обработчик OnClick для кнопки.

Пример 3.10. Компонент Edit (текстовое поле) на форме:

Пример 3.11. Свойства компонента Edit:

Свойство

Назначение

BorderStyle

Определяет границу вокруг текстового поля: bsNone (нет границы), bsSingle (есть граница). Внешний вид границы можно изменять с помощью свойств BevelInner, BevelKind, BevelOuter

MaxLength

Ограничивает количество символов, которые можно ввести в Edit

ReadOnly

Значение True запрещает редактирование текста, отображаемого в Edit

Text

Содержит вводимый или выводимый текст

Текстовое поле часто называют однострочным редактором, поскольку оно снабжено такими функциями, как:

  • копирование выделенного текста в буфер обмена (комбинация клавиш Ctrl+С);
  • вырезание выделенного текста в буфер обмена (комбинация клавиш Ctrl+Х);
  • вставка текста из буфера обмена в позицию курсора (комбинация клавиш Ctrl+V);
  • отмена последней команды редактирования (комбинация клавиш Ctrl+Z).

Пример 3.12. Форма на этапе конструирования:

Работающее приложение:

Пример 3.13. Функции преобразования чисел и строк:

Название функции

Действие

Ввод с помощью Edit

StrToInt

Преобразование строки в целое число

StrToFloat

Преобразование строки в значение с плавающей запятой (соответствует типу экспоненциальный в Excel)

Вывод с помощью Edit

IntToStr

Преобразование целого числа в строку

FloatToStr

Преобразование вещественного числа в строку

FloatToStrf

Преобразование вещественного числа в строку по заданному формату. Например, FloatToStrf(d, ffFixed,5,2) позволит вывести число занимающее 5 позиций, из которых 2 отводятся для дробной части числа

Пример 3.14. Форма на этапе конструирования:

Обработчик события OnClick для Button1.

procedure TForm1.Button1Click(Sender: TObject);

var a, b: integer;

    c: real;

begin

  a := StrToInt(Edit1.Text);

  b := a * a;

  c := sqrt(a);

  Edit2.Text := IntToStr(b);

  Edit3.Text := FloatToStrF(c,
              FFfixed,
7, 3 );

end;

Работающее приложение:

Вместо двух компонентов Label и Edit можно использовать один LabeledEdit, сочетающий в себе свойства обоих компонентов. Находится компонент на палитре Additional: .