Цитата(Paranoik @ 15.6.2006, 23:49 ) | | Чего ?... |
Поиск зависит не от диалогов, а только от того как ты его реализуешь.
Цитата(Paranoik @ 15.6.2006, 23:49 ) | | Ну в общем мне процедуры поиска и замены нужны, со всеми возможностями (регистр, поиск вверх, вниз и др.)... |
А сразу нельзя так было вопрос задать? Позволю процитировать справку:
| Цитата | VCL Reference Help. This example requires a TRichEdit, a TButton, and a TFindDialog. Clicking the button click will display a Find Dialog to the right of the edit control. Filling in the "Find what" text and pressing the Find Next button will select the first matching string in the Rich Edit control that follows the previous selection. |
| Код | procedure TForm1.Button1Click(Sender: TObject);
begin FindDialog1.Position := Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top); FindDialog1.Execute; end;
procedure TForm1.FindDialog1Find(Sender: TObject); var FoundAt: LongInt; StartPos, ToEnd: Integer; begin with RichEdit1 do begin { begin the search after the current selection if there is one } { otherwise, begin at the start of the text } if SelLength <> 0 then
StartPos := SelStart + SelLength else
StartPos := 0;
{ ToEnd is the length from StartPos to the end of the text in the rich edit control }
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]); if FoundAt <> -1 then begin SetFocus; SelStart := FoundAt; SelLength := Length(FindDialog1.FindText); end; end; end; |
Функция FindText как раз и делает то, что ты хочешь в зависимости от последнего параметра. |