Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

добавить строку в Rich

1.9K
07 апреля 2003 года
aciDroN
25 / / 07.04.2003
Еcть две AnsiString
Пишу вот такой код

Rich->Lines->Add (str1);
//<здесь меняю атрибуты текста (цвет)>
Rich->Lines->Add (str2);

как можно вывести str2 в ту же строку, что и str1,
без переноса?
2.1K
07 апреля 2003 года
Murzilka
23 / / 23.12.2002
Цитата:
Originally posted by aciDroN
Еcть две AnsiString
Пишу вот такой код

Rich->Lines->Add (str1);
//<здесь меняю атрибуты текста (цвет)>
Rich->Lines->Add (str2);

как можно вывести str2 в ту же строку, что и str1,
без переноса?



AnsiString перегружает опертор + и +=.
Поэтому примерно так:
//ты должен знать номер строки X, куда в конечном итоге попала str1, Add возвращает этот номер


int X=Rich->Lines->Add (str1);
Rich->Lines->Strings[X]+=str2;

1.9K
07 апреля 2003 года
aciDroN
25 / / 07.04.2003
Цитата:
Originally posted by Murzilka


AnsiString перегружает опертор + и +=.
Поэтому примерно так:
//ты должен знать номер строки X, куда в конечном итоге попала str1, Add возвращает этот номер


int X=Rich->Lines->Add (str1);
Rich->Lines->Strings[X]+=str2;



при такой записи Strings[X]+=str2 ничего не происходит.. Если же написать
Rich->Lines->Strings[X] = Rich->Lines->Strings[X]+str2, то аттрибуты, которые я хоче применить только к str2 применяются и к str1...
И что за странную ошибку выдает билдер во время выполнения (через раз): "Project raised exception class EOutOfResources with message 'RichEdit line insertion error'. Process stoped." и при этом указывает на строку Rich->Lines->Add (str2);
в этом самом Rich только пару строк всего, что за OutOfResources??

2.1K
07 апреля 2003 года
Murzilka
23 / / 23.12.2002
Цитата:
Originally posted by aciDroN


при такой записи Strings[X]+=str2 ничего не происходит.. Если же написать
Rich->Lines->Strings[X] = Rich->Lines->Strings[X]+str2, то аттрибуты, которые я хоче применить только к str2 применяются и к str1...
И что за странную ошибку выдает билдер во время выполнения (через раз): "Project raised exception class EOutOfResources with message 'RichEdit line insertion error'. Process stoped." и при этом указывает на строку Rich->Lines->Add (str2);
в этом самом Rich только пару строк всего, что за OutOfResources??



AnsiString str1="One ", str2="Two", str3;
int X=RichEdit1->Lines->Add(str1);
str3=RichEdit1->Lines->Strings[X];
str3+=str2;
RichEdit1->Lines->Strings[X]=str3;

Тогда примерно так. А насчет ошибки - если через раз, может, не хватает системных ресурсов? Билдер 6? У меня почему-то в нем иногда линковщик выдает ошибку, пишет что памяти не хватает.

1.9K
07 апреля 2003 года
aciDroN
25 / / 07.04.2003
Цитата:
Originally posted by Murzilka


AnsiString str1="One ", str2="Two", str3;
int X=RichEdit1->Lines->Add(str1);
str3=RichEdit1->Lines->Strings[X];
str3+=str2;
RichEdit1->Lines->Strings[X]=str3;

Тогда примерно так. А насчет ошибки - если через раз, может, не хватает системных ресурсов? Билдер 6? У меня почему-то в нем иногда линковщик выдает ошибку, пишет что памяти не хватает.



если использовать такой код, то как поменять цвет str2? мне надо разноцветные надписи в одной строке...

2.1K
07 апреля 2003 года
Murzilka
23 / / 23.12.2002
Цитата:
Originally posted by aciDroN


если использовать такой код, то как поменять цвет str2? мне надо разноцветные надписи в одной строке...


Единственный способ, который я знаю - установка SelStart на начало того места, которое тебе надо раскрашивать, SelLength на его длину - и вперед.
Т.Е. примерно так:

//сначала заблокировать отображение на экране
RichEdit1->Lines->BeginUpdate();

RichEdit1->SelStart=X; //X - позиция курсора перед тем местом, которое надо раскрашивать
RichEdit1->SelLength=str2.Length();
RichEdit1->SelAttributes->Fonts->Color=clRed;
RichEdit1->SelLength=0;

//разблокировать
RichEdit1->Lines->EndUpdate();

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог