Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Справочник по компонентам Delphi.doc
Скачиваний:
148
Добавлен:
02.05.2014
Размер:
1 Mб
Скачать

Компонент tReplaceDialog

TObject—>TPersistent—>TComponent->TCominonDialog-”TFindDialog->

->TReplaceDialog

Модуль DIALOGS

Страница Палитры компонентов Dialogs

Этот диалог отличается от предыдущего тем, что позволяет найденный текст заменить на другой, заданный свойством:

(РЬ) property ReplaceText: string;

При нажатии кнопок Replace или Replace All в диалоге возникает событие

(Pb) property OnReplace: TNotifyEvent;

При этом в множество Options добавляется одна из новых опций — fi-Replace или frReplaceAll. В обработчике этого события нужно предусмотреть поиск и замену текста.

Использование стандартньк диалоговых окон иллюстрирует пример DEMOEDIT. Это простой однооконный редактор текста, который, однако, использует все семь компонентов-диалогов. Для поиска и замены в нем задействован модуль SEARCH, приведенный в одном из примеров фирмы Borland. Модуль можно найти в каталоге DELPHI\DEMOS\TEXTDEMO.

Типовые диалоги

Отдельную группу составляют функции, реализующие простые типовые диалоги (не входящие в Палитру компонентов): посылка сообщения пользо­вателю, получение от него одного из множества возможных ответов, ввод строки. В Windows API для этого предназначалась функция MessageBox. В Delphi существует целый ряд специализированных функций.

Простейшую задачу — информирование пользователя сообщением — можно решить при помощи функций:

procedure ShowMessage(const Msg: strings-procedure ShowMessagePos(const Msg: string; X, Y: Integer);

В этом случае диалог состоит из статического текста Msg и кнопки ОК. Вторая функция отличается тем, что диалог можно поместить в требуемую точку (X.Y).

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

function MessageDig(const Msg: string; AType: TMsgDigType; AButtons:

TMsgDigButtons; HelpCtx: Longint)-: Word;

function MessageDlgPos(const Msg: string; AType: TMsgDigType;

AButtons: TMsgDigButtons; HelpCtx: Longint; X, Y: Integer): Word;

Здесь информация представлена в строке Msg и в пиктограмме, соответству­ющей типу диалога:

TMsgDigType = (mtWarning, mtError, mtlnformation, mtConfirmation, mtCustom) ;

В диалог можно включить любые кнопки из множества:

TMsgDIgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbignore, mbAll, mbHelp) ;

TMsgDigButtons = set of TMsgDIgBtn;

Для типовых случаев уже описаны подмножества кнопок:

mbYesNoCancel = [mbYes, mbNo, mbCancel];

mbOKCancel = [mbOK, mbCancel];

mbAbortRetryIgnore = [mbAbort, mbRetry, mbignore] ;

Параметр HelpCtx указывает контекст системы помощи, который будет активизирован в случае нажатия <F1>.

Как и в предыдущем случае, вторая функция отличается от первой возмож­ностью явного задания координат верхнего левого угла диалога.

Функция

function InputBox(const ACaption, APrompt, ADefault: string): string;

есть вызов диалога с заголовком ACaption, в котором подсказка APrompt приглашает набрать в редактирующем элементе текст. Первоначально в него загружается текст ADefault. Функция возвращает строку, находившуюся в редактирующем элементе на момент закрытия диалога.

Функция

function InputQuery(const ACaption, APrompt: string;

var Value: string): Boolean;

выполняет аналогичные действия. Набранный текст будет содержаться в строке Value. Однако возвращает она булевское значение, в зависимости от того, нажал ли пользователь OK (<Enter>) или Cancel (<Esc>).

Наконец, если мало только получения ответа, и есть необходимость управлять диалогом во время его существования, воспользуйтесь функцией:

function CreateMessageDialog(const Msg: string; AType: TMsgDigType;

AButtons: TMsgDigButtons): TPorm;

Она конструирует и возвращает указатель на форму, идентичную MessageDig с соответствующими параметрами.

Внешний вид последней группы диалогов можно изменить, переустановив зна­чения, определенные в модуле DIALOGS:

MsgDigButtonStyle: TButtonStyle = bsAutoDetect;

MsgDIgGlyphs: Boolean = True;

Соседние файлы в папке Delphi