![]() |
|
#1
|
|||
|
|||
![]() Вроде бы не сложно, но как то глючит.
Хочу организовать поиск как в блокноте (Cntrl-F) Из Form6, я в Form5.RichEdit1-е при нажатии на кнопку "Искать далее" ищу текст, который находится в Form6.Edit1.text и ставлю курсор в позицию этого текста. При потворном нажатии следующуюю позицию. Что не так в мое коде кто знает? Код:
procedure TForm6.FormCreate(Sender: TObject); begin k:=0; end; procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction); begin k:=0; end; procedure TForm6.Button1Click(Sender: TObject); var mytext:string; begin // Здесь я вырезаю текст из которого буду искать. При первом нажатии k+1=1, т.е. ищется начиная с первой позиции. В следубщий раз от позиции найденного текста + 1 и так далее. mytext:=copy(Form5.RichEdit1.Text, k+1 ,Length(Form5.RichEdit1.Text)-k-1); k:=pos(Edit1.text, Mytext); Form5.RichEdit1.SelStart:=k+1; Form5.RichEdit1.Perform(EM_SCROLLCARET,0,0); Form5.RichEdit1.SetFocus; end; |
#2
|
|||
|
|||
![]() Код:
var mytext: string; begin mytext:=copy(RichEdit1.Text, k+1 ,Length(RichEdit1.Text)-k); If pos(Edit1.Text, mytext)<>0 then k:=k+pos(Edit1.text, Mytext) else k:=Pos(Edit1.Text, RichEdit1.Text); RichEdit1.SelStart:=k-1; RichEdit1.Perform(EM_SCROLLCARET,0,0); RichEdit1.SetFocus; end; |
#3
|
|||
|
|||
![]() Цитата:
Точно. Спасиб! От вырезанного текста у меня позиция искалась. А у тебя от суммы. Ты прирожденный математик |