Компонент Delphi FindDialog

значок диалога FindDialogКомпонент Delphi FindDialog располагается на странице Dialogs Палитры компонентов. Он является стандартным диалогом поиска фрагмента текста. Его обычно применяют для реализации текстовых редакторов.

 Искомый фрагмент текста находиться в свойстве FindText. Основные параметры поиска интуитивно понятны.форма диалога FindDialog

Поместим на форму кнопку и напишем на ней - "Найти", компонент Memo и  FindDialog. Напишем обработчик для кнопки:

FindDialog3.Execute;

Для диалога поиска создадим обработчик onFind:как задать свойство onFind

procedure TForm3.FindDialog3Find(Sender: TObject);
begin
     if pos(FindDialog1.FindText, memo1.Text)<>0 then
        begin
          with Memo1 do begin
          HideSelection := False;
          SelStart := pos(FindDialog3.FindText, Text)-1;
          SelLength := Length(FindDialog3.FindText);
          end;
         end
         else
      ShowMessage('Строка '+FindDialog3.FindText+' не найдена!');
end;

Напишем какой либо текст в компоненте memo и нажмем кнопку "Найти". Введем в строку поиска слово. В начале которое есть в тексте, затем нажмем кнопку "Найти далее". Теперь напишем слово которого нет и увидим результат работы нашей программы.

Итог: мы познакомились с компонентом FindDialog1 его свойствами и предназначением.

Компонент Delphi FindDialog: 3 комментария

  1. не понятно , один диалог на форме или их 1 и 3 ..
    и форм сколько ,если в коде procedure TForm3…. обозначено

  2. разобрался ,,..у Вас с номерами FindDialog опечатка или???
    везде у FindDialog должна быть цифра 1 – FindDialog1
    а у Вас то
    if pos(FindDialog1. цифра 1
    то
    SelStart := pos(FindDialog3. цифра 3
    а диалог то на форме один…

  3. еще было бы здорово , если бы код хотя бы кратко
    объяснялся ..что например такое HideSelection
    или что означает строка SelStart := pos(FindDialog3.FindText, Text)-1;
    так понимаю в если в условии if pos(FindDialog1.FindText, memo1.Text)0
    подстрока найдена , тогда зачем еще искать чего-то , в общем ,без
    обращения и поиска на других сайтах не обойтись…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *