Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизВставка текста в RichEdit (курсор за текстом) Найти похожие ветки
← →
Delph © (2004-11-11 03:49) [0]Ответьте пожалуйста на такой вот вопрос. Мне надо при нажатии Control+Enter вставлять в RichEdit текст (те добавлять строку) и необходимо, чтобы курсор оставался в конце вставленного текста.
Делаю так:
if (ssCtrl in Shift) then begin
RichEdit1.Lines.Add("Привет");
Key:=8;
end;
но вот, что происходит:
строка вставляется, а курсор переходит на строку ниже. Пробовал в коде программы добавлять ещё раз Key:=8 но не помогает. Прошу отнестись к просьбе серьёзно. Интересуют различные варианты. Заранее благодарен.
← →
Семен Сорокин © (2004-11-11 08:46) [1]SelStart, SelLength, SelText + F1;
RichEdit1.Lines.Add("Привет"); - добавляет строчку с конечными спец. символами (возврат каретки), поэтому курсор переходит на след строку.
← →
Delph © (2004-11-11 10:28) [2]---------------------
Семен Сорокин
---------------------
Меня интересует вариант с Add т.е. как можно выйти из проблемы - перенести указатель в конец добавленного текста. (текст я не выделяю и тд тоесть надо вставлять предопределённое слово). Спасибо за ответ.
Есть ещё предложения?
← →
Семен Сорокин © (2004-11-11 10:29) [3]
> Есть ещё предложения?
см. SelStart
← →
Gloomer © (2004-11-11 13:01) [4]Примерное решение:
procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var sel:integer;str:string;
begin
if ((ssCtrl in Shift) and (Key=13))then begin
sel:=RichEdit1.SelStart;
str:=#13#10"Привет";
RichEdit1.Text:=Copy(RichEdit1.Text,1,RichEdit1.SelStart)+str+Copy(RichEdit1.Text,RichEdit1.SelStart+1,length(RichEdit1. Text));
RichEdit1.SelStart:=sel+length(str);
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c