- •Экзаменационные вопросы
- •III семестр
- •Компонент MaskEdit
- •Свойство EditMask
- •Методы добавления строк в компонент Delphi ListBox
- •Компонент GroupBox
- •3.3.6 Таблица строк — компонент StringGrid
- •4.4 Таблицы изображений — компоненты DrawGrid и StringGrid
- •4.2 Отображение графики на канве Canvas
- •Сравнение с sdi Преимущества
- •Недостатки
- •Процедура ShowMessage
- •Функция MessageDlg
- •Функция MessageDlgPos
- •Функция InputBox
- •Функция InputQuery
- •FindDialog и ReplaceDialog — диалоговые окна поиска и замены текста
- •Компонент ReplaceDialog
- •ColorDialog — диалоговое окно выбора цвета
- •Основными свойствами диалога ColorDialog:
- •FontDialog — диалоговое окно выбора параметров шрифта
- •Основные свойства FontDialog
- •11.2. Компоненты, используемые для связи с базами данных
- •11.2.1. Компонент Table
- •11.2.2. Компонент DataSource и компоненты отображения данных
- •Линейный поиск
- •Бинарный поиск
- •Сортировка простым выбором
- •Сортировка простыми вставками
- •Сортировка слияниями
Функция InputQuery
Функция InputQuery (const ACaption, APrompt: String; var Value: String): Boolean отличается от функции InputBox тем, что вместо третьего параметра— строки по умолчанию— используется параметр Value, который в случае подтверждения ввода содержит введенную пользователем строку.
В качестве результата функция возвращает логическое значение, позволяющее определить, каким образом завершен диалог. Если нажата кнопка ОК, то функция возвращает значение True, если нажата кнопка Cancel или клавиша <Esc> — значение False.
C помощью функции InputQuery выводится окно запроса |
|
procedure TForm1.btnlnputNameClick (Sender: TObject);
var soname: string;
begin
soname : = ' Иванов1';
InputQuery('Пользователь', 'Введите фамилию', soname);
end;
В вышеуказанной процедуре с помощью функции InputQuery выводится окно запроса, аналогичное приведенному ранее. Возвращаемый функцией InputQuery результат не анализируется.
Кроме рассмотренных диалоговых окон, в Delphi имеется ряд других специализированных диалоговых окон, например диалоговое окно выбора каталога, вызываемое функцией Select Directory модуля FileCtrl.
11. Компоненты для организации диалога с пользователем (выбор файла, шрифта, цвета, строк для поиска и замены). Свойства, методы, события, особенности. Примеры использования.
FindDialog и ReplaceDialog — диалоговые окна поиска и замены текста
Для организации стандартного диалогового окна Find (Найти) (см. скриншот) предназначен компонентFindDialog, который служит для ввода текстовой информации в строку Find what (Строка поиска). Введенная строка является значением свойства FindText типа String.
Кодирование операций, связанных собственно с поиском строки, осуществляется программистом. Для этого используется событие onFind типа TNotifyEvent, возникающее при нажатии кнопки Find Next (Найти далее). Действия, связанные с поиском текста, должны выполняться внутри процедуры-обработчика этого события. Диалоговое окно Find в принципе можно использовать и просто для ввода в программу текстовой информации (значение свойства FindText), хотя для этого есть более удобные средства и способы, например функцияInputBox или однострочный редактор Edit.
Параметрами диалога управляет свойство Options типа TFindOptions, которое может принимать следующие значения (поскольку практически все значения этого параметра для компонента FindDialog и компонентаReplaceDialog, рассмотренного ниже, аналогичны, здесь приведены и значения, связанные с заменой текста):
frDisableMatchCase, frDisableWholeWord, frDisableUpDown — снимают флажки Match case (Учитывать регистр),Match whole word only (Совпадение только по целым словам) и переключатели Direction (Направление поиска) соответственно;
frDown — активизирует переключатель Down (Вниз) при открытии диалога;
frFindNext — устанавливается при нажатии кнопки Find Next и сбрасывается при закрытии диалога;
frHideMatchCase, frHideWholeWord, frHideUpDown — удаляют из диалога флажки Match case, Match whole word only и переключатели Direction соответственно;
frMatchCase — включается при установке флажка Match case;
frReplace (для ReplaceDialog) — указывает на необходимость заменить текущее вхождение строки FindText строкой ReplaceText;
frReplaceAll (для ReplaceDialog)— указывает, что необходимо заменить все вхождения строки FindText строкой ReplaceText;
frShowHelp — отображает кнопку Help;
frWholeWord — включается при установке флажка Match whole word only.
Рассмотрим в качестве примера следующую процедуру:
Пример организации поиска |
|
procedure TForm1.FindDialog1Find(Sender: TObject);
begin
if pos(FindDialog1.FindText, Memo1.Text) <> 0 then
begin
Memo1.HideSelection := False;
Memo1.SelStart := pos(FindDialog1.FindText, Memo1.Text) — 1;
Memo1.SelLength := Length(FindDialog1.FindText);
end else MessageDlg ('Строка ' + FindDialog1.FindText + ' не найдена!',mtConfirmation, [mbYes], 0);
end;
При нажатии кнопки Find Next диалога FindDialog1 в тексте редактора Memo1 ищется первое появление строки, заданной для поиска (FindDialog1.FindText). При успешном поиске найденный текст выделяется, в противном случае выдается сообщение об отсутствии искомой строки. Чтобы найденный текст в компоненте Memo1 был выделен цветом, перед выделением искомой строки свойству HideSelection присваивается значение False.