Установка каретки в RichEdit.
Компилятор: Delphi
Узнать положение курсора в RichEdit не составляет
труда (richedit.getcaret). А вот как установить каретку в
нужное место ?.
Procedure setline(WhichEdit:TRichedit;Linepos,charpos:integer);
Begin
with WhichEdit do
begin
selstart:=perform(EM_LineIndex,Linenum,0)+charpos;
perform(EM_ScrollCaret,0,0);
end;
end;
Комментарии:
Если Вам не нужно, чтобы происходил скроллинг к
позиции каретки, то EM_ScrollCaret можно убрать. Эта
процедура так же может быть использована для TMemo,
только надо будет заменить объявление witchedit на
TMemo:
Procedure CustomMemoSetline(WhichEdit:TCustomMemo;Linepos,charpos:integer);
Так же эту процедуру можно использовать как
ответ на вопрос "Как установить фокус на
определённую строку в компоненте Memo ?". Для
этого необходимо добавить следующий код после
строки selstart:
sellength:=length(lines(line));
И установить charpos в 0.
RichEdit должен иметь фокус, иначе em_ScrollCaret не
сработает.
|