![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в Ричедит узнать и перейти на выделеную в нем строку?
Kostik © (2006-01-19 19:17:00)Вобщем я Файнддиалогом ищу текст в ричедите. Он его нааходит но не прокручивает текст а только выделяет. Как перейти на выделеную строку??
ищу так :
procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
Begin
with RichEdit2 do
begin
if SelLength <> 0 then
StartPos := SelStart + SelLength
Else
StartPos := 0;
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;
Kostik (2006-01-20 07:18:00) [1]>begin...end
Большое спасибо!
begin...end (2006-01-19 19:45:00) [2]> Kostik (19.01.06 19:17)
После установки SelLength добавьте такой код: Perform(EM_SCROLLCARET, 0, 0).
Интересно, что EM_SCROLLCARET должно автоматически посылаться при изменении SelLength (см. TCustomRichEdit.SetSelLength), однако прокручивания действительно почему-то не происходит...
Kostik (2006-01-19 19:34:00) [3]ну, или как ГРАМОТНО искать, выделять и переходить на выделеный текст в ричедите??