Справочник по компонентам 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;