Справочник по компонентам Delphi. Часть 2 - Компонент TFindDialog
ОГЛАВЛЕНИЕ
Компонент TFindDialog
TObject -> TPersistent -> TCornponent -> TCoiranonDialog -> TFindDialog
Модуль DIALOGS
Страница Палитры компонентов DialogsС помощью этого диалога можно осуществить подготовку к поиску нужного фрагмента в тексте. В этом окне вы можете определить все нужные атрибуты, но написание собственно кода поиска все-таки возложено на программиста.
Рассмотрим опции, определенные в свойстве:
(pb) property Options: TFindOptions;
TFindOption= (frDown, frFindNext, frHideMatchCase, frHideWholeWord, frHideUpDown, frMatchCase, frDisableMatchCase, frDisableUpDown, frDisableWholeWord, frReplace, frReplaceAl1, frWholeWord, frShowHelp);
TFindOptions = set of TFindOption;
По умолчанию в диалоге имеется группа радиокнопок, задающих направление поиска текста. Ее можно настроить с помощью опций:
- frDown — в случае наличия этой опции первоначальное направление поиска — вниз (от начала к концу). Устанавливается соответствующая радиокнопка;
- frDisableUpDown — запрещает выбор направлений. Группа радиокнопок показывается серым цветом;
- frHideUpDown — запрещает выбор направлений и прячет эту группу радиокнопок.
Поиск может осуществляться с учетом регистра символов. Если отмечен флажок Match Case, регистры символов должны совпадать, т. е. в этом случае "Word" не будет равно "word".
За состояние флажка отвечают следующие три опции:
- frHideMatchCase — прячет флажок;
- frDisableMatchCase — показывает флажок, но делает его неактивным. В обоих случаях учет регистра невозможен;
Если эти опции не установлены, флажок в диалоге активен, и его значение может быть изменено пользователем. Его значение соответствует наличию в Options опции frMatchCasc.
Также в диалоге предусмотрен флажок Match Whole Words Only, который разрешает или запрещает поиск заданного текста только в виде целых слов. Опции frHideWholeWord, frDisableWholeWord и frWholeWord имеют тот же смысл, что и три опции предыдущего флажка.
- frShowHelp — включает в состав диалога кнопку Help;
Одна опция является информационной. Когда пользователь нажал кнопку Find Next, то опция frFindNext появляется в множестве Options.
При каждом случае, когда пользователь нажал кнопку Find Next, возникает событие:
(Рb) property OnFind: TNotifyEvent ;
В его обработчике программист должен реализовать собственно поиск. Текст, который требуется найти, нужно поместить в свойство:
(Pb) property FindText: string;
Координаты места появления диалога на экране могут быть заданы либо в виде точки
property Position: TPoint;
property Left: Integer;
property Top: Integer;
Для вьшолнения рада оптаций программисту доступен дескриптор диалогового окна
(Ro) property Handle: HWnd;
и метод, закрывающий это окно:
procedure CloseDialog;