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


Автор: Snipe 30.11.2005, 01:04
Нужно вытащать один символ из текста в TRichEdit и изменить его пишу так:
Код

RichEdit1.Text[j]:='a';

Компилятор ругается и пишет:
Left side cannot be assigned to
Что делать, в чём ошибка?

Автор: Farnsworth 30.11.2005, 01:35
Цитата
Что делать

Достаточно исправить на:

Код

var s: string;
begin

s:=RichEdit1.Text;
s[2]:='a';           //или вообще делаем, что хотим; например цикл по j.
RichEdit1.Text:=s;

end;


Цитата
, в чём ошибка?

Text - это не переменная, а аттрибут, его нельязя менять частями, его можно только read или write.

Автор: Snipe 30.11.2005, 10:50
Неудобно. smile
А существует ли такой компонент, обладающий свойством seltext и содержание которого можно было менять напрямую без вспомогательных переменных?

Автор: FRAGNATIC 30.11.2005, 11:12
seltext и так в нём есть =)
а ещё Lines )

Автор: Snipe 30.11.2005, 20:12
Мне нужно чтобы ещё и текст изменялся напрямую без дополнительных переменных, или существует какой-нибудь другой способ это сделать помимо описанного Farnsworth выше? Просто получается что 20 метров в файле, 20 метров в RichEdit и ещё 20 метров во вспомогательной переменной. Не слишком жирно будет?

Автор: Farnsworth 1.12.2005, 06:26
Ну, можно не сразу весь RichEdit1.Text использовать. Можно пройтись циклом по RichEdit1.Lines, тогда размер вспомогательной переменной будет не больше самой длинной строки в RichEdit'е:
Код
var i: integer; s: string;
begin

for i:=0 to RichEdit1.Lines.Count-1 do begin
   s:=RichEdit1.Lines.Strings[i];
   //делать с переменной s всё что хочешь
   RichEdit1.Lines.Strings[i]:=s;
end;

Автор: Alcohol 1.12.2005, 14:45
Что выдумывать? RichEdit.Text - не стал разбираться, что это именно, но оно имеет тип TCaption и потому является просто одной строкой. Содержимое ричэдита это RichEdit1.Lines типа TStrings.
А доступ к отдельным символам получается вот так и работает отлично: RichEdit1.Lines[c][n]='a'

Автор: FRAGNATIC 1.12.2005, 15:41
Alcohol
код не пробовал проверять?
так ты тока прочетать символ можешь, но не изменить )

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