Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/41: Рейтинг темы: голосов - 41, средняя оценка - 4.78
5 / 4 / 1
Регистрация: 21.07.2011
Сообщений: 13
1

Цветные строки в ListBox'е Builder'а

26.07.2011, 07:11. Показов 7468. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет, всем форумчанам!

Решил поделиться опытом вывода цветных строк в Builder'овском ListBox'е, т.к. в интернете не нашел прямых ответов по этой теме (ответы были, в основном, по Delphi).

Пример кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    ListBox1->Style = lbOwnerDrawFixed; //или lbOwnerDrawVariable
}
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    AddLog("текст", txt_clr); //txt_clr - цвет строки типа TColor (clRed, clBlue, и т.д. или
                              //RGB(r, g, b), где r, g, b = 0-255)
}
 
//пользовательская функция
void __fastcall TForm1::AddLog(const AnsiString str, const TColor str_clr)
{          
    ListBox1->Items->AddObject(str, (TObject *)str_clr);
}
 
void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control,
      int Index, TRect &Rect, TOwnerDrawState State)
{
    TColor new_clr = TColor(ListBox1->Items->Objects[Index]);
    AnsiString str = ListBox1->Items->Strings[Index];
 
    ListBox1->Canvas->FillRect(Rect); //закрашиваем прямоугольник Rect, в котором будет выводиться
                                      //конкретный элемент TListBox, текущей кистью для предотвращения
                                      //появления артефактов изображения (см. вторую ссылку в конце поста)
                                      //при выделении элемента списка
 
    ListBox1->Canvas->Font->Color = new_clr;
    ListBox1->Canvas->TextOut(Rect.Left, Rect.Top, str);
}
Ссылки, которые помогли мне:

1. Как поменять цвет строки в listbox?
2. http://cppbuilder.ru/articles/0133.php (думаю, здесь не нарушил правило ссылки на другой форум )
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2011, 07:11
Ответы с готовыми решениями:

EPSON CX4900 не видит ЦВЕТНЫЕ картриджи (только ЦВЕТНЫЕ)
После промывки печатающей головки не видит именно цветные картриджи, все три штуки (капелька...

Цветные строки
Ребята, подскажите пожалуйста компонент, в котором можно выделять строки цветом (неважно фон или...

Цветные строки в TMemo
Можно ли выделять разными цветами строки в TMemo? Перед добавлением очередной строки, я меняю...

Цветные строки в RichEdit
Доброго вечера, что то я вообще деградировать начал, хочу разукрасить RichEdit но не как не выходит...

1
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
26.07.2011, 08:45 2
Конечно спасибо! Но, лучше соображать нужно и смотреть шире, раскраска строк ни чем не отличатся от раскраски ячеек в StringGrid, а уже про него тут полно информации, в разно форме!! Так что поиском пользоваться еще в силе!
0
26.07.2011, 08:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2011, 08:45
Помогаю со студенческими работами здесь

ListBox - Цветные строки
как сделать в ListBox цветные строки (в любой строке сменить цвет текста на свой)?

цветные строки в combobox
Возможно ли сделать в combobox строки цветными ? Мне нужно выделить те, элементы которые недоступны...

Цветные строки в CComboBox
Добрый день. Стоит задача сделать цветные строки в ССomboBox, переопределением виртуальных методов ...

Цветные строки в поле со списком.Возможно?
Всем привет! :) Подскажите пожалуйста уважаемые форумчане, возможно ли сделать строки поля со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru