220______________________________________________Глава 3

В функции ReplaceDialoglFind в конце поиска очередного вхождения иско-
мого фрагмента в текст проверяется нажатие пользователем кнопки Заменить все.
Если она нажата, то происходит обращение к функции ReplaceDialoglReplace, в
которой осуществляется замена текста, после чего сразу автоматически опять вы-
зывается функция ReplaceDialoglFind. Таким образом без остановок просматри-
ваются и заменяются все вхождения искомого фрагмента в текст. Если же кнопка
Заменить все не нажата, то программа останавливается и ждет, пока пользователь
нажмет в диалоге (см. рис. 3.46) кнопку Найти далее или Заменить. Если нажима-
ется кнопка Найти далее, то производится следующий вызов ReplaceDialoglFind.
А при нажатии кнопки Заменить вызывается функция ReplaceDialoglReplace, ко-
торая заменяет выделенный текст.

Приведенные коды рассчитаны на компонент RichEdit. Для компонента
Memo в нем просто надо заменить RichEditI на Memol.

3.7 Компоненты организации управления
приложением

3.7.1 Общая характеристика

Имеется несколько компонентов, которые сами по себе не выполняют никаких
действий, но помогают организовать взаимодействие компонентов в приложении и
обмен информацией между приложениями. Это компоненты, представленные в
таблице 3.9. Компоненты ActionList и ImageList организуют управление внутри
приложения и позволяют сделать его код более четким и понятным, отвечающим
принципам объектно-ориентированного программирования.

Компоненты OLEContainer, DDEClientConv, DDEClientItem и DDEServerI-
tem организуют взаимодействие одновременно выполняемых приложений по двум
различным технологиям: OLE и DDE. Вопросы взаимодействия приложений рас-
смотрены подробно в разделах главы 6, где и обсуждаются эти компоненты.

Таблица 3.9. Компоненты организации управления приложением
в C++Builder 4

Пиктограмма i Компонент       Страница Описание

В|       ActionList    Standard Обеспечивает диспетчеризацию
\       I (список событий)      событий компонентов

__    i ImageList         Win32     Предназначен для работы со

3J(список                    списками изображений одинако-
I__.    | изображений)              вого размера в меню, инстру-
I                                       ментальных панелях и т.п.

OLEContainer     System    Используется при создании об-
I______(контейнер OLE)_______ласти клиента для объекта OLE

два     DDEClientConv    System    Используется клиентом DDE

(диалог с сервером           для организации диалога с сер-
i              DDE)                       вером DDE

Rasps     DDEClientItem    System    Используется для определения
;              (данные, передава-           данных клиента, передаваемых
емые серверу DDE)           в диалоге серверу DDE ___

r-aj-i     | DDEServerItem    System    Используется для определения
1»{-2-     i (данные, передава-           данных сервера, передаваемых
емые клиенту DDE)           клиенту DDE в течение диалога