Memo

  • Автор темы kyran29
  • Дата начала
K

kyran29

#1
:) Добрый день!
Вопрос мой заключается вот в чем.
При выделении и копировании строк из одного поля Memo во второе поле Memo2.Lines.Add(Memo1.SelText). Это понятно!
Но как только курсор находится не вначале строки IntToStr(Memo1.SelStart) > 0
Копируется обрезанная строка, т.е. с того места, откуда начали выделять строки.
Как вернуть ту часть строки, которая не была выделена? Так же при окончании выделения. Если в строке выделено >= 3 символов, то выделяем целую строку, если < 3 выделение с этой строки выделение снимаем. Скопированные строки во втором поле Memo должны быть целые.
 

Вложения

vital

Больной Компом Детектед
29.01.2006
2 432
33
#2
memo2.lines.add(memo1.lines[memo1.CaretPos.y]);
 

vital

Больной Компом Детектед
29.01.2006
2 432
33
#4
Эмм.. А что подробнее? Этот код добавляет в Memo2 ту строку из Memo1 на которой находится Курсор. Все.
 
K

kyran29

#5
Vital
Этот код добавляет в Memo2 ту строку из Memo1 на которой находится Курсор


При выделении строк, т.е. выделяем ни одну строку, а несколько. Не полными строки могут быть первая и последняя см. рис. Копируем все, но если строки первая и последняя выделены не полностью, добавляем, то, что не выделено и в первой строке и в последней.
 

vital

Больной Компом Детектед
29.01.2006
2 432
33
#6
Код:
procedure TForm1.Memo1OnMouseDown(Sender: TObject);
begin
if Memo1.SelLength > 0 then запоминаешь y(игрек) позицию каретки как показано выше- это начальная строка
end;
Далее
Код:
procedure TForm1.Memo1OnMouseUp(Sender: TObject)
begin
копируешь во второй мемо текст из мемо 1 от ранее запомненной строки до строки где теперь находится каретка.
end.