Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
2-1254735726
Серый
2009-10-05 13:42
2009.11.22
query, dbgrid размер ячеек


11-1199016802
jabu
2007-12-30 15:13
2009.11.22
Form.ActiveControl not work


15-1253611795
XcCCC
2009-09-22 13:29
2009.11.22
Сопло принтерное сделать


15-1253706262
McSimm
2009-09-23 15:44
2009.11.22
Pidgin натрепал про вас :)


15-1254213585
alek_1
2009-09-29 12:39
2009.11.22
DBGridEH




   Наверх