Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выделить слово в RichEdit 
V
    Опции темы
chekist
Дата 10.7.2007, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.6.2007

Репутация: нет
Всего: 2



В общем, есть такой код:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  selstart,sellength:integer;
begin
  RichEdit1.Text:=RichEdit1.Text+'time ';
  selstart:=length(RichEdit1.Text);
  RichEdit1.Text:=RichEdit1.Text+'user: ';
  sellength:=length('user: ');
  RichEdit1.Text:=RichEdit1.Text+'say'+#13#10;
  
  RichEdit1.SelStart:=selstart;
  RichEdit1.SelLength:=sellength;
  RichEdit1.SelAttributes.Style:=[fsbold];
end;


Мне нужно, чтобы при каждом вызове данной процедуры в едите появлялся текст:
time  user:  say

Первый раз работает. Однако при последующем получаю:
time  user:  say
time  user:  say
time  user:  say

Т.е. предудущее форматирование теряется. В чем ошибка ?

PM MAIL   Вверх
mr.Anderson
Дата 10.7.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Вот правильное решение:
Код

procedure TForm1.Button1Click(Sender: TObject);
var len: Integer;
begin
 len := Length( RichEdit1.Text );
 RichEdit1.Lines.Add( 'time user: say' );
 RichEdit1.SelStart := len + 5;
 RichEdit1.SelLength := 4;
 RichEdit1.SelAttributes.Style := [fsBold];
end;



--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Snowy
Дата 10.7.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Ошибка в том, что ты модифицируешь Text.
А это сбрасывает всё оформление.
Добавляй через Lines.Add - это сохранит оформление.

Добавлено через 41 секунду
Хм... Неужели я так долго писал...
PM MAIL   Вверх
chekist
Дата 11.7.2007, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.6.2007

Репутация: нет
Всего: 2



Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.