| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Цвет шрифта выделенного итема в ListView |
| Автор: Ne1tr1n0 8.9.2011, 12:19 |
| Добрый день! Собственно вопрос в заголовке. Дело в том, что в XP цвет шрифта выделенного итема по умолчанию сменяется на clHighlightText (и таким образом он нормально виден на фоне синего выделения), а в семерке, со включенным Aero и в упрощенном стиле фон выделения намного бледнее, и цвет шрифта не изменяется (остается clWindowText). Я в событии OnAdvancedCustomDrawSubItem вывожу текст методом TextOut у канвы, но хотелось бы в зависимости от того, выделен итем или нет, менять цвет шрифта у канвы на нужный, а то не очень красиво получается. Вот и хотел узнать, как определить цвет шрифта выделенного итема. Сам пробовал - всегда пишет clWindowText, вне зависимости наличия cdsSelected в State, текущей темы винды и самой винды. Если надо, могу скриншоты привести текущего результата и желаемого. Спасибо. |
| Автор: Ne1tr1n0 8.9.2011, 22:48 |
| А что мне даст индекс? У меня ListView не раскрашенный какой-то, просто надо в одном из сабитемов помимо текста выводить картинку. А в остальном должен быть тот же листвью с отрисовкой по дефолту. Пока получается так: Windows 7 Windows XP Хотелось бы так: Windows 7 Windows XP Неправильно ведет себя крайний правый столбец. Если просто менять цвет черный на белый если выделен итем, то некрасиво получается в семерке, а если оставлять как есть (всегда черный), то в XP некрасиво выглядит. |
| Автор: Ne1tr1n0 8.9.2011, 23:13 |
| Пробовал ещё добавлять непосредственно текст в сабитем (в SubItems.Add который), при этом оставив место для картинки. Получается то, что нужно, но при ресайзе колонки всё получается совсем не так как хотелось бы. Но ресайз боюсь это отдельная тема для разговора. |
| Автор: Alexx82 9.9.2011, 08:34 | ||
Как вариант можно определить под какой системой запущена программа, а потом менять цвета. |