Четвертый BORLAND С++ и его окружение

       

Диалоговые блоки поиска и замены


Общие диалоговые окна поиска и замены позволяет вам искать и

возможно заменять текст в данных приложения. Эти диалоговые окна

обладают достаточной гибкостью и могут использоваться для документов и баз данных. Проще всего использовать эти диалоговые блоки с помощью классов редактируемых управляющих элементов TEditSearch и TEditFile. Они реализуют редактируемые управляющие элементы поиска и замены.

Так как диалоговые блоки поиска и замены являются безрежимными, указатель на них обычно сохраняется в элементах данных объекта родительского окна. Это облегчает связь с ними. Строит и

создавать блоки поиск и замены следует в ответ на команду (например, команду меню Search Finf и Search Replace). При этом выводится диалоговый блок, где пользователь может вводить информацию

поиска.

TFindReplaceDialog::TData имеет стандартные элементы данных

Flags, плюс элементы данных, содержащие строки поиска и замены.

Так как блоки поиска и замены являются безрежимными, они взаимодействуют с объектом родительского окна, используя зарегистрированное сообщение FINDMSGSTRING. Вы должны написать функцию реакции на это сообщение. Эта функция воспринимает два параметра WPARAM и LPARAM и возвращает LRESULT. Параметр LPARAM содержит указатель, который вы должны передавать функции-элементу UpdateData.

После вызова UpdateData нужно проверить FR_DIALOGTERM. Этот

флаг устанавливается, когда пользователь закрывает безрежимный

диалоговый блок. При этом ваша функция реакции на событие должна

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

Пока вы можете обновлять флаг FR_DIALOGTERM, вы может обрабатывать сообщение FINDMSGSTRING, выполняя фактический поиск. Это

может быть простой поиск в редактирующем управляющем элементе или

сложный поиск в таблице Paradox или dBASE.

Общие диалоговые блоки имеют командную кнопку Find Next

(найти следующий), которую пользователи могут активизировать при

выводе диалогового блока. Большинство приложений также имеют команду Find Next в меню Search, так что пользователь может найти

следующее вхождение за один шаг, не открывая диалогового блока.

Те же функциональные возможности предлагают TFindDialog и TReplaceDialog.



Содержание раздела