Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2 семестр.doc
Скачиваний:
42
Добавлен:
27.05.2015
Размер:
777.73 Кб
Скачать

3.3. Общие свойства, события и методы компонентов редактирования

Событие OnChange типа TNotifyEvent возникает при любых изменениях в содержимом редактора и можно использовать для проверки информации в поле ввода.

Свойство Modified типа Boolean при модификации данных редактора принимает значение True.

Пример проверки сохранения редактируемой информации на диске:

if Memo1.Modified then

begin

// операторы выдачи предупреждения и сохранения информации

end;

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

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

Значение свойства SelText типа String определяет выделенный фрагмент.

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

Свойство HideSelection типа Bооlеаn определяет, будет ли отображаться выделенный текст при потере компонентом фокуса управления. Если свойство HideSelection имеет значение True (по умолчанию), то текст будет выглядеть выбранным при переходе фокуса на другой элемент управления.

Пример операции с выделенным текстом:

Memo1.SelStart := 19;

Memo1.SelLength := 6; // в компоненте Mеmо1 6 символов,

Memo1.SelText := 'abcdefgh'; // начиная с 19-го, заменяются на строку abcdefgh.

if pos('qwerty', Edit1.Text) <> 0 then // в поле Edit1 осуществляется поиск строки qwerty

begin

Edit1.HideSelection := false;

Edit1.SelStart := роs('qwertу', Edit1.Text)-1; // в случае удачного поиска найденный

Edit1.SelLength := length('qwerty'); // фрагмент выделяется.

end;

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

Методы CopyToClipBoard и CutToClipBoard соответственно копируют и вырезают в буфер обмена выделенный фрагмент текста. Например, Memo1.CutToClipBoard; // вырезает выделенный фрагмент и помещает в буфер обмена

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

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

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

procedure TForm1.Edit1Exit (Sender: TObject);

begin

if (Edit1.Tеxt = '123') or (Edit1.Text ='456') thеn

bеgin

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

#13#10'Повторите ввод.', mtЕrrоr, [mbOK], 0);

Edit1.SеtFoсus;

Edit1.SelectAll;

end;

end;

Cвойства ReadOnly и Enabled обеспечивают отображение нередактируемого текста.