Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод2курс_прогр_конт.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.38 Mб
Скачать

2.Общие элементы компонентов редактирования

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

При любых изменениях в содержимом редактора возникает событие onChange типа TNotifyEvent, которое можно использовать для проверки информации, содержащейся в поле ввода, например, для оперативного контроля правиль­ности набора данных. Кроме того, при модификации данных редактора свойство Modiefid типа Boolean принимает значение True. Это свойство можно использовать, например, при проверке того, сохранена ли редакти­руемая информация на диске:

if Memol.Modiefid then <выдача предупреждения и сохранение информации>;

Для указания максимального количества символов, которые допускается вво­дить в элемент редактирования, можно использовать свойство MaxLength типа integer. При этом ограничение на длину текста относится к вводу со стороны пользователя, программно можно ввести большее количество сим­волов, чем это задано в свойстве MaxLength. По умолчанию длина текста, вводимого пользователем, не ограничена (MaxLength = 0).

Свойства AutoSelect, SelStart, SelLength и SelText позволяют работать с выделенным (селектированным) фрагментом текста. Эти свойства доступны не только для чтения, но и для записи, когда фрагмент выделяется программным способом (например, в процессе поиска или замены информации).

Свойство AutoSelect типа Boolean определяет, будет ли автоматически вы­делен текст в элементе редактирования, когда последний получает фокус ввода (по умолчанию имеет значение True).

Значение свойства SelText типа string определяет выделенный фрагмент. При отсутствии выделенного текста значением свойства является пустая строка.

Свойства SelStart и SelLength типа Integer задают соответственно начальную позицию в строке (отсчет символов в строке начинается с нуля) и длину выделенного фрагмента.

Кроме свойств, для операций с выделенным фрагментом текста служат такие методы, как SelectAll, CopyToClipBoard И CutToClipBoard.

Метод SelectAll выделяет весь текст в элементе редактирования.

Методы CopyToClipBoard и CutToClipBoard соответственно копируют и вы­резают в буфер обмена выделенный фрагмент текста.

Для работы с буфером обмена имеется также метод PasteFromClipBoard, предназначенный для вставки текста из буфера обмена в место текущего расположения курсора в элементе редактирования. Если имеется выделен­ный фрагмент, то вставляемый текст заменяет его.

Для проверки данных, введенных в элемент редактирования, можно исполь­зовать событие onExit, возникающее при окончании ввода, т. е. при потере фокуса этим элементом.

Пример. Проверка данных, введенных в редактор.

procedure TForml.EditlExit(Sender: TObject);

begin

if (Editl.Text='123') or (Editl.Text='456') then begin

MessageDlg(‘Артикул’+Editl.Text+'неправильный!'+

#13#10+'Повторите ввод.', mtError, [mbOK], 0);

Editl.SetFocus;

Editl.SelectAll;

end; end;

В редактор Editl вводится артикул нового товара, который не должен быть равен "123" или "45б". При окончании ввода в обработчике события onExit выполняется проверка артикула. Если он набран неверно, выдается предупреждение, а фокус снова получает ре­дактор Editl.

Основным назначением элементов редактирования является ввод и измене­ние текста, но их можно использовать и для отображения нередактируемого текста, например, при выводе справочной информации. С этой целью нужно установить соответствующие значения свойств ReadOnly или Enabled. Оба способа обеспечивают отображение нередактируемого текста, однако имеют свои недостатки. В первом случае компонент Memo при выполнении программы может получать фокус. В поле ввода отображается курсор, что создает у пользователя иллю­зию доступности текста для редактирования. Подобного не происходит при использовании свойства Enabled, однако в этом случае поле редактирования становится неактивным, и нахо­дящийся в нем текст отображается бледным цветом, что не слишком удобно для чтения. Кроме того, происходит отключение полос прокрутки (при их наличии).