Компонент Delphi FindDialog располагается на странице Dialogs Палитры компонентов. Он является стандартным диалогом поиска фрагмента текста. Его обычно применяют для реализации текстовых редакторов.
Искомый фрагмент текста находиться в свойстве FindText. Основные параметры поиска интуитивно понятны.
Поместим на форму кнопку и напишем на ней - "Найти", компонент Memo и FindDialog. Напишем обработчик для кнопки:
FindDialog3.Execute;
Для диалога поиска создадим обработчик 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 его свойствами и предназначением.
не понятно , один диалог на форме или их 1 и 3 ..
и форм сколько ,если в коде procedure TForm3…. обозначено
разобрался ,,..у Вас с номерами FindDialog опечатка или???
везде у FindDialog должна быть цифра 1 – FindDialog1
а у Вас то
if pos(FindDialog1. цифра 1
то
SelStart := pos(FindDialog3. цифра 3
а диалог то на форме один…
еще было бы здорово , если бы код хотя бы кратко
объяснялся ..что например такое HideSelection
или что означает строка SelStart := pos(FindDialog3.FindText, Text)-1;
так понимаю в если в условии if pos(FindDialog1.FindText, memo1.Text)0
подстрока найдена , тогда зачем еще искать чего-то , в общем ,без
обращения и поиска на других сайтах не обойтись…