Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > В текушею позицию в Memo


Автор: Pavelbej 16.8.2005, 11:27
Как вставить текст в текущею позицию курсора в Memo. Срочно надо и искать по форуму некогда. Хотелось бы исходник вот на этом примере. У меня он вставляет текст но в следуюшею линию а курсор остается в начале документа. Заранее благодарен.

Код

procedure TForm1.ListBox2Click(Sender: TObject);
begin
    Memo1.Lines.append(ListBox2.Items.Strings[ListBox2.ItemIndex]);
    memo1.Tag:=1;
end;

Автор: Pakshin A. S. 16.8.2005, 11:41
попробуй:
Код

Memo1.Text:=Concat(Copy(Memo1.Text, 1, Memo1.SelStart), 'your text', Copy(Memo1.Text, Memo1.SelStart+1, Length(Memo1.Text) - Memo1.SelStart));

Может нужно немного поиграть с параметрами в фукнции Copy() частности где-то прибавить единицу, а где-то ее убрать...

Автор: Pakshin A. S. 16.8.2005, 12:04
Проверил:
код
Код
 Memo1.Text:=Concat(Copy(Memo1.Text, 1, Memo1.SelStart), 'your text', Copy(Memo1.Text, Memo1.SelStart + 1, Length(Memo1.Text) - Memo1.SelStart));

Работает верно...

Автор: Quadr0 16.8.2005, 12:10
...

Автор: Pakshin A. S. 16.8.2005, 12:17
Quadr0 smile

Автор: Samhein 16.8.2005, 13:11
А вроде еще так можно: smile
Код

Memo1.SetSelTextBuf(Buffer:PAnsiChar);

Автор: FRAGNATIC 16.8.2005, 13:42
вы чё?
Код

var
  Pos: integer;
  Buf: string;
begin
  Pos := Memo.SelStart;
  Buf :=Memo.Lines.Strings[Memo.CaretY-1];
  Insert('text', buf, Memo.CaretX);
  Memo.Lines.Strings[Memo.CaretY-1] := Buf;
  Memo.SelStart:=Pos+Length('text');
  Memo.SetFocus();
end;

Автор: Pakshin A. S. 16.8.2005, 14:05
FRAGNATIC
ИМХО, вариант от Quadr0 намного меньше...

Автор: FRAGNATIC 16.8.2005, 14:08
Pakshin A. S.
я не говорю что это самый лучший!
но он и фокус востоналвиает куда надо)
я просто показал ещё один фариант)))

Автор: Pakshin A. S. 16.8.2005, 14:10
FRAGNATIC, сорри... просто не понял...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)