Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вставка текста в RichEdit (курсор за текстом) [D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


Delph ©   (2004-11-11 03:49:00) 

Ответьте пожалуйста на такой вот вопрос. Мне надо при нажатии Control+Enter вставлять в RichEdit текст (те добавлять строку) и необходимо, чтобы курсор оставался в конце вставленного текста.

Делаю так:

if (ssCtrl in Shift) then begin
 RichEdit1.Lines.Add('Привет');
 Key:=8;
end;

но вот, что происходит:
строка вставляется, а курсор переходит на строку ниже. Пробовал в коде программы добавлять ещё раз Key:=8 но не помогает. Прошу отнестись к просьбе серьёзно. Интересуют различные варианты. Заранее благодарен.


Gloomer   (2004-11-11 13:01:00) [1]

Примерное решение:

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;


Семен Сорокин   (2004-11-11 10:29:00) [2]


> Есть ещё предложения?

см. SelStart


Delph   (2004-11-11 10:28:00) [3]

---------------------
Семен Сорокин
---------------------

Меня интересует вариант с Addт.е. как можно выйти из проблемы - перенести указатель в конец добавленного текста. (текст я не выделяю и тд тоесть надо вставлять предопределённое слово). Спасибо за ответ.

Есть ещё предложения?


Семен Сорокин   (2004-11-11 08:46:00) [4]

SelStart, SelLength, SelText + F1;
RichEdit1.Lines.Add('Привет'); - добавляет строчку с конечными спец. символами (возврат каретки), поэтому курсор переходит на след строку.


Наверх

Титульная страница Поиск, карта сайта Написать письмо