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

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

Как вставить строку в TkolMemo? [Delphi]


Nikfel ©   (2009-06-26 18:28:00) 

Подскажите, пожалуйста. Без kol делал так:
memo1.Lines.Insert(0,'Stroka');
Заранее спасибо.


Nikfel   (2009-06-28 13:08:00) [1]

Спасибо. Через Item2Pos гораздо проще делать, чем так как я пытался.


Vladimir Kladov   (2009-06-27 22:25:00) [2]

Item2Pos - возвращает позицию символа в началу указанной строки.
Есть Pos2Item, если что.


Nikfel   (2009-06-27 16:40:00) [3]

Вот что придумал:

function InsertStart(strText:string; intID:integer):integer;
var strD:string;
i,d,k:integer;
begin
i:=pos(#13#10,strText);
d:=0;k:=0;
strD:=strText;
if i<>0 then if intID=0 then begin
result:=d;
exit;
end;
while i<>0 do begin
 inc(k);
 strD:=Copy(strD,i+2,Length(strD)-i);
 if k>0 then d:=d+i+1 else d:=d+i+2;
 if k=intID then begin
   result:=d;
   break;
 end;
 i:=pos(#13#10,strD);
end;
end;

procedure TForm1.ButtonClick(Sender: PObj);
begin
memo1.SelStart:=insertstart(memo1.Text,3);
memo1.Selection:='stroka'#13#10;
SendMessage(memo1.Handle,WM_LBUTTONDOWN,MK_LBUTTON,0);
SendMessage(memo1.Handle,WM_LBUTTONUP,MK_LBUTTON,0);
end;


Может можно проще или только так делать?


MTsv DN   (2009-06-26 19:59:00) [4]

> memo1.Lines.Insert(0,'Stroka');
А здесь не надо знать куда вставлять? Или Вам надо с начала? Тогда так:
Memo1.Items[0] := 'Text';


Nikfel   (2009-06-26 19:25:00) [5]


> Memo1.SelStart := ххх;Memo1.Selection := 'text';


Можно конечно это использовать, но может можно проще? Такой вариант не удобен, т.к. надо знать с какого места вставлять текст.

Ладно завтра попробую написать код. Но вроде должно быть все гораздо проще.


MTsv DN   (2009-06-26 19:08:00) [6]

Пардон. Такой вариант подойдет?

Memo1.SelStart := ххх;
Memo1.Selection := 'text';


Nikfel   (2009-06-26 19:00:00) [7]


> Я мож чет не помню, но кажись так:Memo1.Add('sdafasdf');
> А ваще читать книгу по KOL!!!


Вообще-то я искал информацию в книге, но её там не нашел. Про Memo1.Add('sdafasdf'); я знаю, но это не то. Мне надо не добавить строку в конец текста, а вставить в нужное место в тексте.

На kol что ли надо самому писать такую функцию для вставки строки после указанной строки?


MTsv DN   (2009-06-26 18:54:00) [8]

Я мож чет не помню, но кажись так:
Memo1.Add('sdafasdf');

А ваще читать книгу по KOL!!!


Наверх

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