|
19 / 19 / 0
Регистрация: 15.01.2010
Сообщений: 236
|
||||||
Как поменять цвет строки в listbox?22.03.2010, 02:52. Показов 34008. Ответов 17
Метки нет (Все метки)
подскажите как сделать что бы можно было менять цвет строки в листбоксе. сейчас добавляю так-
addlog(0, 'текст'); ?
0
|
||||||
| 22.03.2010, 02:52 | |
|
Ответы с готовыми решениями:
17
Поменять цвет шрифта у конкретного элемента listbox |
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||
| 22.03.2010, 10:23 | ||||||
|
Надо установить свойство (в инспекторе объектов или программно):
ListBox1.Style = lbOwnerDrawFixed; Затем, написать обработчик для события OnDrawItem:
3
|
||||||
|
19 / 19 / 0
Регистрация: 15.01.2010
Сообщений: 236
|
|
| 22.03.2010, 13:13 [ТС] | |
|
непонимаю как это использовать
0
|
|
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||
| 22.03.2010, 18:43 | ||||||
|
Можно действовать так:
4
|
||||||
|
19 / 19 / 0
Регистрация: 15.01.2010
Сообщений: 236
|
|
| 31.03.2010, 17:12 [ТС] | |
|
блин. мне надо только цвет шрифта менять а не всей строки. ошибся. как только цвет шрифта менять?
0
|
|
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||
| 31.03.2010, 19:55 | ||||||
|
Прорисовка разными цветами самого текста в строках:
2
|
||||||
|
4 / 4 / 0
Регистрация: 03.11.2009
Сообщений: 91
|
|
| 16.12.2010, 11:06 | |
|
Господа! А как можно сделать раскраску строк в режиме runtime? поясняю я не знаю когда и какая строка должна быть подкрашена. Цикл заполняет ListBox из БД по требованию юзера и в зависимости от значения в одном столбце подкрашивать строку в Listbox (выводит же данные из другого столбца).
Подкрасить возможно потребуется одну строку а может и все... Все примеры что я находил при перерисовке стирают предшествующие подкрашенные строки... как быть?
0
|
|
|
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|||||||
| 16.12.2010, 11:20 | |||||||
4
|
|||||||
|
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 20
|
|
| 18.04.2017, 16:02 | |
|
Добрый день!
Подскажите пожалуйста как вернуть стандартное выделение текущей строки при использовании стиля lbOwnerDrawFixed. Я использую Checklistbox. Если пользователь ставит галочку на какой либо строке, то эта строка окрашивается цветом по определенному алгоритму. Но если допустим выбрать какую либо окрашенную строку, то на ней появляется мелкая штриховая окантовка, при этом цвет самой строки не меняется. В результате визуально тяжело определить какая строка сейчас выделена. Спасибо!
0
|
|
|
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 20
|
|||||||
| 18.04.2017, 22:05 | |||||||
|
Событие DrawItem возникает при любом действии со списком ListBox. Если событие вызвано глобальным изменением ListBox, то есть перерисовываются все элементы, то ваше предложение работает, так как обрабатывается каждая строка. Но если пользователь щелкает по одной строке то DrawItem срабатывает только один раз и только для данной строки. Соответственно при выделении следующей строки изменяется только она, а предыдущая строка не перерисовывается. В результате получается куча выделенных строк, пока допустим не начнешь скролить. Придумал как решить данный вопрос. Все получилось. Нужно было всего лишь запомнить данные текущей строки и при следующем срабатывании события перерисовывать текущую и предыдущую строки. Всем спасибо! Если есть более элегантное решение, то буду только рад применить его.
0
|
|||||||
|
|
||||||
| 18.04.2017, 22:24 | ||||||
|
чисто теоретически что-то я не очень верю
должны бы перерисовываться обе строки автоматически и старая и новая Добавлено через 7 минут ну, и как всегда, правильно не верил
1
|
||||||
|
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 20
|
|||||||||||
| 18.04.2017, 23:02 | |||||||||||
|
krapotkin, ну как бы вот так. Я пробовал разные варианты пока не пришел к такому выводу. Сначала вообще не понимал как возникает это событие. Но танцы с бубном привели к выше написанному выводу.
Ну и как бы объявление процедуры, а вернее переменная Index наталкивает на мысль что она была бы тут бесполезной, если бы событие затрагивало все строки. procedure TForm2.CheckListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); Добавлено через 5 минут krapotkin, да работает. Но пока не понимаю как)))Добавлено через 30 минут Видимо я что то не так делал с этим состоянием, раз у меня не получилось. Не соображу пока. Но тем не менее мне не понятен механизм работы события. Вот сейчас проверил два варианта. Один работает, второй нет. Отличие только в первой строке. В чем принципиальное различие не понимаю. Объясните пожалуйста. Вариант 1. Тут все верно, выделение снимается с предыдущей строки
0
|
|||||||||||
|
|
|
| 19.04.2017, 08:35 | |
|
система вызывает вместо своей (точнее - после своей) функции - вашу для перерисовки итема
тогда когда ЕЙ надо. соответственно после изменения itemIndex будут перерисованы как минимум ДВА item при этом в разных параметрах она сообщает вам, в каком состоянии находится item State - это набор (set) таких состояний. если в State указано, что item выделен, то я должен покрасить его выделенным по-хорошему, если там содержится Focused, я еще и пунктирную рамку должен сам оформить если не указано, раскрашиваем как нам надо для всех невыделенных item
1
|
|
|
0 / 0 / 1
Регистрация: 05.06.2014
Сообщений: 175
|
||||||
| 16.12.2019, 15:00 | ||||||
|
покажите пожалуйста на примере как присвоить цвет сроке которая уже существует
работа с одинаковыми строками но менять цвет надо при условиях и замене статуса
0
|
||||||
|
32 / 26 / 7
Регистрация: 18.10.2019
Сообщений: 187
|
|
| 16.12.2019, 15:12 | |
|
lotes читайте тему с начала, а не с конца - обнаружите массу интересной информации по вашему вопросу.
0
|
|
|
0 / 0 / 1
Регистрация: 05.06.2014
Сообщений: 175
|
|||||||||||
| 16.12.2019, 15:56 | |||||||||||
|
я могу сделать цвет добавляемой строке но не могу понять как поменять цвет в существующей по номеру строки, саму логику не понял из текста выше.
0
|
|||||||||||
|
Модератор
4114 / 2346 / 807
Регистрация: 15.11.2015
Сообщений: 9,326
|
|
| 16.12.2019, 16:24 | |
|
lotes, это процедура отрисовки. У вас известен номер строки, которую нужно выделить другим цветом. Тогда, в процедуре сверяете Index с этим номером и если совпадает, то присваиваете другой цвет.
0
|
|
| 16.12.2019, 16:24 | |
|
Помогаю со студенческими работами здесь
18
WPF Listbox Items поменять цвет текста у добавляемого элемента
как для одной строки поменять цвет маркера тега <mark>
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|