8 8 8 8 8 8 8 8 8 8 8 8 8 8
8
8
|
|
TFindDialog - диалог поиска - Программирование от RIN.RU
TFindDialog - диалог поиска
Стандартное диалоговое окно компонента TFindDialog используется для поиска фрагмента текста (рис. 18.43).
Свойства компонента:property FindText: String; | Указывает образец для поиска | property Left: Integer; | Содержит горизонтальную позицию левого верхнего угла места появления окна | property Options: TFindOptions; | Определяет настройку диалога (см. ниже) | property Position: TPoint; | Содержит горизонтальную и вертикальную позицию левого верхнего угла места появления окна | property Top: Integer; | Содержит вертикальную позицию левого верхнего угла места появления окна |
Для компонента определен следующий тип, использующийся в свойстве options:
TFindOption = (frDown, frFindNext, frHideMatchCase, frHideWholeWord, frHideUpDown, frMatchCase, frDisableMatchCase, frDisableUpDown, frDisableWholeWord, frReplace, frReplaceAll, frWholeWord, frShowHelp) ; TFindOptions = set of TFindOption;
Рис. 18.43. Стандартное окно компонента TFindDialog
Eго значения имеют следующий смысл:
frDown frFindNext | Устанавливает поиск вперед по тексту | frHideMatchCase | Сообщает программе, что пользователь нажал кнопку Найти далее Убирает выбор в переключателе с учетом регистра | frHideWholeWord | Убирает выбор в переключателе только слово целиком | frHideUpDown | Прячет кнопки выбора направления поиска | frMatchCase | Устанавливает выбор в переключателе с учетом регистра | frDisableMatchCase | Запрещает выбор С учетом регистра | frDisableUpDown | Запрещает выбор направления поиска | frDisableWholeWord | Запрещает выбор только слово целиком | frReplace | Используется в компоненте TReplacteDialog и указывает на необходимость замены текущего выбора | frReplaceAll | Используется в компоненте TreplaceDialog и указывает на необходимость замены всех вхождений образца поиска | frWholeWord | Устанавливает выбор в переключателе Только слово целиком. | frShowHelp | Включает в окно кнопку Help |
Спецификой диалога является реализуемая им возможность просмотра найденного фрагмента и при необходимости продолжение поиска. С этой целью для компонента определено событие OnFind:
TNotifyEvent, которое возникает всякий раз, когда пользователь нажимает кнопку найти далее. Обработчик события должен найти образец в тексте и показать его пользователю. Пусть, например, компонент Memol содержит отыскиваемый фрагмент и поиск идет с учетом регистра. Тогда обработчик может иметь такой вид:
procedure TFormI.FindDialoglFind(Sender: TObject); var SelPos: Integer; begin with TFindDialog(Sender) do begin // Ищем фрагмент в тексте SelPos := Pos(FindText, Memol-Lines.Text); if SelPos > 0 then begin // Фрагмент найден - выделяем его Memol.SelStart := SelPos - 1; Memol.SelLength := Length(FindText); end else ShowMessage ('Текст "' + FindText + '"не найден') end; end;
8 8 8
| |
|
|