Конференция "KOL" » Как вставить строку в TkolMemo? [Delphi]
 
  • Nikfel (26.06.09 18:28) [0]
    Подскажите, пожалуйста. Без kol делал так:
    memo1.Lines.Insert(0,'Stroka');
    Заранее спасибо.
  • MTsv DN (26.06.09 18:54) [1]
    Я мож чет не помню, но кажись так:
    Memo1.Add('sdafasdf');

    А ваще читать книгу по KOL!!!
  • Nikfel (26.06.09 19:00) [2]

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


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

    На kol что ли надо самому писать такую функцию для вставки строки после указанной строки?
  • MTsv DN (26.06.09 19:08) [3]
    Пардон. Такой вариант подойдет?

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

  • Nikfel (26.06.09 19:25) [4]

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


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

    Ладно завтра попробую написать код. Но вроде должно быть все гораздо проще.
  • MTsv DN (26.06.09 19:59) [5]
    > memo1.Lines.Insert(0,'Stroka');
    А здесь не надо знать куда вставлять? Или Вам надо с начала? Тогда так:
    Memo1.Items[0] := 'Text';

  • Nikfel (27.06.09 16:40) [6]
    Вот что придумал:

    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;



    Может можно проще или только так делать?
  • Vladimir Kladov © (27.06.09 22:25) [7]
    Item2Pos - возвращает позицию символа в началу указанной строки.
    Есть Pos2Item, если что.
  • Nikfel (28.06.09 13:08) [8]
    Спасибо. Через Item2Pos гораздо проще делать, чем так как я пытался.
 
Конференция "KOL" » Как вставить строку в TkolMemo? [Delphi]
Есть новые Нет новых   [134431   +11][b:0][p:0.001]