Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Насчет отрисовки иконок в стандартных компонентах |
Автор: Ak47black 2.5.2007, 13:05 |
Эта проблема наблюдаеться не только в TComboBoxе прри выделении иконок, неособо красиво выделяються ![]() Как тут исправить? Можно-ли исправить без модификации компонента(-ов)? Чтобы было как в проводнике> |
Автор: Snowy 2.5.2007, 13:16 |
Ну... Самому нарисовать, как больше нравится. |
Автор: Yanis 2.5.2007, 13:58 | ||
А ты как их туда засунул? |
Автор: Ak47black 2.5.2007, 14:05 |
Yanis, тоесть TComboBoxEx, и TImageList привинтил. В нормальном состоянии то нормально и там и там выглядят нормально ,но а если выделяю то както нетак выглядит уже :| Добавлено @ 14:10 Во тут очень хорошо видно что как-то тупо верхние (это в проге которая сделана в дельфи), отрисовываються ![]() А в низу как в проводнике. |
Автор: Ak47black 6.5.2007, 11:58 |
Что с этим никто несталкивался что-ли ![]() |
Автор: Snowy 6.5.2007, 12:38 | ||
Ok. Набросал пример. Доработай под себя - сам должен определить какую иконку рисовать. Она фиксированно не прописывается. Определяй при отрисовке. В коде я тупо прописал - рисовать всегда первую иконку из имаглиста1. При желании можно доработать до компонента. 1. Воткни на форму ComboBox. 2. Установи ему стиль csOwnerDrawFixed 3. Собсна такой код:
Прицепляю сампл проекта. |
Автор: Alexeis 6.5.2007, 13:02 |
Ak47black, проверь возможно в винде используются иконки 24 битные а в проге используются 16 битные или вообще 256 цветов. |
Автор: Snowy 6.5.2007, 13:16 |
Нет. Просто разные варианты прозрачности. XP использует прозрачность, а дельфи по прежнему обратно-совместимую сеточку кладёт. 98-я винда также будет сеточку класть и вид будет идентичный. |
Автор: Ak47black 6.5.2007, 19:28 |
Snowy, а почему тогда в дельфи примерах в Virtual ListViewe нормально иконки выделяються. Может можно както на TImagelist подействовать что-бы он неложил эту сеточку, а выделял нормально сплошным? Добавлено через 1 минуту и 15 секунд Всётаки к каждому компоненту прикручивать тоже не выход. |
Автор: Snowy 7.5.2007, 01:08 |
Сеточку делает не ImageList, а как раз компонент ![]() |
Автор: Ak47black 7.5.2007, 10:30 |
Хорошо насшет того что сам компонент то я согласен, ну ,а как тогда в Virtual Listview примере ,там-же CN_DRAWITEM неиспользуеться ,а выделяються иконки нормалько как в проводнике, при этом используеться TListView ![]() |
Автор: MetalFan 7.5.2007, 12:13 |
даффай тестовый проект) |
Автор: Ak47black 7.5.2007, 12:35 |
Вот тестовый пример в котором все видно о чем я говорю) |
Автор: MetalFan 7.5.2007, 15:22 |
чесн говоря - хз... что-то ничо в голову не пришло |
Автор: Snowy 7.5.2007, 15:34 |
Просто в одном случае работа идёт на апи, во втором родными средствами. ЗЫ. 3 раза подумай перед тем как использовать VirtualListView ![]() |
Автор: Ak47black 7.5.2007, 19:26 |
Snowy, ну ,а как сделать сделать нормально не сеточкой ,а сплошным я так и непонял ![]() |
Автор: TechBee 20.8.2007, 00:10 | ||
хз, взял DRKB, нашел статью, кое чо вырезал лишнее (как мне показалось). за 100% работоспособность не отвечаю, но визуально получилось как ты хотел...
|