Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzam_voprosy (1).doc
Скачиваний:
14
Добавлен:
21.04.2019
Размер:
1.92 Mб
Скачать

Функция InputQuery

Функция InputQuery (const ACaption, APrompt: String; var Value: String): Boolean отличается от функции InputBox тем, что вместо третьего параметра— строки по умолчанию— используется параметр Value, который в случае подтверждения ввода содержит введенную пользователем строку.

В качестве результата функция возвращает логическое значение, позволяющее определить, каким образом завершен диалог. Если нажата кнопка ОК, то функция возвращает значение True, если нажата кнопка Cancel или клавиша <Esc> — значение False.

C помощью функции InputQuery выводится окно запроса

   

  1. procedure TForm1.btnlnputNameClick (Sender: TObject);

  2. var soname: string;

  3. begin

  4. soname : = ' Иванов1';

  5. InputQuery('Пользователь', 'Введите фамилию', soname);

  6. 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.

Рассмотрим в качестве примера следующую процедуру:

Пример организации поиска

   

  1. procedure TForm1.FindDialog1Find(Sender: TObject);

  2. begin

  3. if pos(FindDialog1.FindText, Memo1.Text) <> 0 then

  4. begin

  5. Memo1.HideSelection := False;

  6. Memo1.SelStart := pos(FindDialog1.FindText, Memo1.Text) — 1;

  7. Memo1.SelLength := Length(FindDialog1.FindText);

  8. end else MessageDlg ('Строка ' + FindDialog1.FindText + ' не найдена!',mtConfirmation, [mbYes], 0);

  9. end;

При нажатии кнопки Find Next диалога FindDialog1 в тексте редактора Memo1 ищется первое появление строки, заданной для поиска (FindDialog1.FindText). При успешном поиске найденный текст выделяется, в противном случае выдается сообщение об отсутствии искомой строки. Чтобы найденный текст в компоненте Memo1 был выделен цветом, перед выделением искомой строки свойству HideSelection присваивается значение False.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]