Форум: "Начинающим";
Текущий архив: 2009.11.22;
Скачать: [xml.tar.bz2];
ВнизMemo Найти похожие ветки
← →
kyran29 © (2009-10-09 07:21) [0]При выделении и копировании строк из одного поля Memo во второе поле Memo2.Lines.Add(Memo1.SelText). Это понятно!
Но как только курсор находится не вначале строки IntToStr(Memo1.SelStart) > 0
Копируется обрезанная строка, т.е. с того места, откуда начали выделять строки.
Как вернуть ту часть строки, которая не была выделена? Так же при окончании выделения. Если в строке выделено >= 3 символов, то выделяем целую строку, если < 3 выделение с этой строки выделение снимаем. Скопированные строки во втором поле Memo должны быть целые.
← →
MBo © (2009-10-09 07:44) [1]хм... вроде вчера отвечал на это же...
Логика же простая - находим строку, в которой стоит курсор, и если длина выделения достаточная, то копируем ее.
← →
MonoLife © (2009-10-09 08:33) [2]
> kyran29 © (09.10.09 07:21)...
Var
sslen, rslen: integer;
begin
rslen:=Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
sslen:=SendMessage(Memo1.Handle, EM_LINEINDEX, rslen, 0);
Memo1.SelStart:=sslen;
Memo1.SelLength:=Memo1.SelStart+Memo1.SelLength;
Memo2.Lines.Add(Memo1.SelText);
end;
← →
MonoLife © (2009-10-09 10:10) [3]Не, фигня получилась:)
← →
MonoLife © (2009-10-09 10:22) [4]
Var
sslen, rslen: integer;
begin
rslen:=Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
sslen:=SendMessage(Memo1.Handle, EM_LINEINDEX, rslen, 0);
Memo1.SelStart:=sslen;
Memo1.SelLength:=Length(Memo1.Lines.Strings[rstart]);
Memo2.Lines.Add(Memo1.SelText);
end;
во, типа такого..
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.11.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c