Delphi 3 и создание приложений баз данных


11.10.4. Работа с выделенным текстом


Фрагмент текста форматированного комментария выделяется так же, как и в популярном текстовом процессоре WinWord; для выделения необходимо установить указатель мыши на начало выделяемого фрагмента, нажать левую кнопку мыши и, не отпуская кнопки, установить указатель мыши на конец фрагмента, после чего кнопку отпустить. Есть и другой способ (при помощи клавиатуры): следует переместить курсор на начало выделяемого фрагмента, нажать кнопку с изображением стрелки влево (вправо) и одновременно - кнопку Shift; движение курсора следует остановить на конце выделяемого фрагмента.

Следующие свойства позволяют определить параметры выделенного фрагмента в тексте комментария:

property SelLength: Integer;

возвращает число выделенных символов. property SelStart: Integer; возвращает номер первого выделенного символа в тексте. property SelText: string; возвращает выделенный текст.

Программное изменение одного из указанных свойств изменяет границы выделенного фрагмента.

Весь текст комментария может быть выделен вручную - нажатием на клавиатуре комбинации Ctrl+A, и программно - путем выполнения метода procedure SelectAll;

Свойство property SelAttributes: TTextAttributes; позволяет установить характеристики выделенного текста. Свойства компонента TTextAttributes: . -

• property Color: TColor;

определяет цвет выделенного текста;

• property Height: Integer;

определяет высоту в пикселах выделенного текста;

• property Pitch: TFontPitch;

определяет, имеют ли литеры выделенного текста одинаковую ширину.

Значения:

fpDefault-

определяется используемым шрифтом;

fpFixed -

одинаковая ширина;

fp Variable -

переменная ширина.

• property Protected: Boolean;

определяет (True), что текст защищен от изменения пользователем. В случае, если пользователь пытается изменить защищенный текст, вызывается обработчик события OnProtectChange.

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

• property Size: Integer;

определяет высоту в пикселах выделенного текста.

* property Style: TFontStyles;

определяет стиль выделенного шрифта. Множество Style может состоять из одного или нескольких значений:

fsBold - жирный;

fsltalic -

наклонный;

fs Underline -

подчеркнутый;

fsStrikeout -

зачеркнутый.

Пример.

Установить шрифт, цвет, размер и стиль выделенного текста аналогичными параметрам шрифта, выбранного посредством компонента TFontDialog:

IF FontDialog1.Execute THEN begin

WITH DBRichEditl.SelAttributes do begin

Color := FontDialogl.Font.Color;

Size := FontDialogl.Font.Size;

Name := FontDialogl.Font.Name;

Style := FontDialogl.Font.Style;

END;//with

END;//if

Пример.

Сделать выделенный фрагмент текста защищенным:

DBRichEditI.SelAttributes.Protected := True;

Событие

property OnProtectChange: TRichEditProtectChange;

TRichEditProtectChange = procedure(Sender: TObject; StartPos, EndPos: Integer; var AllowChange: Boolean) of object;

наступает, если пользователь пытается изменить защищенный текст. Параметры StartPos и EndPos содержат границы защищенного текста. Установка в True изменяемого параметра AllowChange разрешает изменять защищенный текст.

Пример.

В
случае, если пользователь пытается изменить символ, ранее помеченный как защищенный, запрашивается подтверждение; если пользователь подтверждает изменение защищенного символа, тот изменяется; если не подтверждает, изменение символа отвергается.

procedure TForm1.DBRichEdit1ProtectChange(Sender: TObject;

StartPos,

EndPos: Integer; var AllowChange: Boolean);

begin

IF MessageDIg('Изменяемый текст являются защищенным. ' + 'Желаете все-таки его изменить?',mtConfirmation,

[mbYes,mbNo],0) = mrYes THEN AllowChange := True;

end;

Выделенный фрагмент текста может быть удален методом procedure ClearSelection;

Метод procedure CopyToClipboard; копирует выделенный текст в буфер обмена Windows.

Метод procedure CutToClipboard; вырезает выделенный текст и вставляет его в буфер обмена Windows.

Метод procedure PasteFromCUpboard; вставляет содержимое буфера обмена Windows в текст комментария, начиная с текущей позиции курсора.

Пример.

Определим кнопки "Копировать в буфер обмена", "Вырезать в буфер обмена", "Вставить из буфера обмена" и напишем обработчики события нажатия этих кнопок:

// кнопка "Копировать в буфер обмена"

procedure TForm1.SpeedButton6Click(Sender: TObject);

begin

DBRichEditI.CopyToClipboard;

end;

// кнопка "Вырезать в буфер обмена"

procedure TFormI.SpeedButton7Click(Sender: TObject);

begin

DBRichEditI.CutToClipboard;

end;

// кнопка "Вставить из буфера обмена"

procedure TForm1.SpeedButtonSClick(Sender: TObject);

begin

DBRichEdit1. PasteFromCUpboard;

end;




- Начало -  - Назад -  - Вперед -