Нужны прозрачные выделения в TListView для Delphi 7 в Windows 7 и более поздних версиях.

Delphi7 не может сделать это по умолчанию, но я надеюсь, что есть способ сделать это с некоторой помощью. Моя картинка показывает, что я хочу сделать с моими ListViews, это прозрачное выделение, которое позволяет цветам, показанным ниже, показывать через него, как это делает TTreeView (и прекрасно работает в! [введите описание изображения здесь] [1] Delphi7 по какой-то причине).

Сайт не позволил мне опубликовать картинку, потому что это мой первый пост. Если вы посмотрите на список в правой части проводника Windows (или File), где находятся файлы, особенно если он находится в представлении «Подробности», в Windows 7, Windows 8, вы увидите, что панель выбора прозрачна. Он не уничтожает цвет объекта (файла и файловых атрибутов) под ним. Это то, что мне нужно иметь. Интересно, что древовидная структура на левой стороне, обладающая такой же прозрачностью, доступна в древовидной структуре Delphi 7 автоматически без каких-либо особых изменений. Я думал, что эти два компонента взяты из одной и той же dll/модуля CommCtrl (или ComCtrls), но listview не делает этого в Delphi7 автоматически. Это моя проблема. И OwnerDrawn — это не тот ответ, на который я надеюсь.


person K. D. Bremer    schedule 23.03.2015    source источник
comment
Возможно, вы захотите отредактировать вопрос, потому что изображение не отображается.   -  person AlainD    schedule 23.03.2015
comment
Вы имеете в виду тему проводника с SetWindowTheme.   -  person David Heffernan    schedule 23.03.2015
comment
Я не вижу никакой картинки...   -  person Jerry Dodge    schedule 23.03.2015
comment
Изображение не отображается, поскольку для ссылки не указан URL.   -  person Remy Lebeau    schedule 23.03.2015
comment
@RemyLebeau Проблема в том, что спрашивающий является пользователем с репутацией 1, и поэтому ему не разрешено публиковать изображения. Только когда пользователь приобрел степень доверия, он позволяет размещать изображения.   -  person David Heffernan    schedule 24.03.2015


Ответы (1)


Элемент управления представлением списка, на который вы ссылаетесь, используемый Explorer, недоступен для сторонних приложений. Элемент управления представлением списка, используемый Проводником, имеет имя класса DirectUIHWND. Стандартное системное представление списка — SysListView32. Элемент управления представлением списка Delphi — SysListView32. Вы не можете разместить элемент управления DirectUIHWND в своем приложении Delphi.

Все это означает, что если вы хотите добиться такого же эффекта в своем приложении, вам придется реализовать его самостоятельно.

person David Heffernan    schedule 23.03.2015
comment
Спасибо за новости, не хорошие новости, но заслуживающие доверия новости. И теперь я могу, по крайней мере, перестать искать ответ. - person K. D. Bremer; 24.03.2015