| 
| 
 | Вопрос # 2 684/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Помогите, пожалуйста, реализовать поиск текста в RichEdit1. Какой должен быть код для кнопки BitBtn2, отвечающая за продолжение поиска?
 Приложение:Переключить в обычный режим procedure TForm1.BitBtn1Click(Sender: TObject);beginwith RichEdit1 do     begin        StartPos:=SelStart+SelLength       else       StartPos:=0;       ToEnd:=Length(Text)-StartPos;        if CheckBox1.Checked then       FoundAt:=FindText(Edit2.Text, StartPos, ToEnd, [stMatchCase])       else       FoundAt:=FindText(Edit2.Text, StartPos, ToEnd, []);            begin           SetFocus;          SelStart:=FoundAt;          SelLength:=Length(Edit2.Text);            end       else begin             BitBtn1.Enabled:=true;            BitBtn2.Enabled:=false;            end;     end;end;
|  |   Вопрос задала: Наталья В. (статус: Посетитель)Вопрос отправлен: 25 апреля 2009, 22:06
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Quark Здравствуйте, Наталья В.!
 На мой взгляд - достаточно сделать так:
 
 StartPos := FoundAt + Length(Edit2.Text);
 
 а далее использовать тот же FindText.
 
 Надо задать StartPos. В данном случае, если фрагмент найден и возвращена его позиция, нужно к найденной позиции добавить длину искомого слова - тогда поиск продолжиться с позиции, следующей за этим словом и оно не вылезет повторно.
 
|  | Ответ отправил: Quark (статус: 1-ый класс)Время отправки: 26 апреля 2009, 20:33
 Оценка за ответ: 5
 Комментарий к оценке: Спасибочки Вам за помощь:)) |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |