TopenDialog/TSaveDialog с нарисованными владельцем элементами

Я хочу реализовать традиционные диалоги открытия и сохранения (а базовые элементы, которые обрабатываются, являются файлами), но я хочу иметь контроль над тем, что отображается вместо имени файла, и включать некоторую графику - то есть мне нужен "владелец" стиль диалога. Помимо этого аспекта, я хочу, чтобы диалог выглядел и чувствовал как можно больше традиционных диалогов открытия / сохранения.

Я полагаю, что столкнулся с реализацией этого сам, мне просто интересно, где лучше всего начать.

2 ответа

AFAIK требуемый уровень настройки не предусмотрен стандартными диалоговыми окнами Windows, но вы можете попробовать TShellListView (TCustomShellListView), который является частью модуля ShellCtrls (этот пакет не установлен в Delphi IDE по умолчанию), отсюда вы можете получить код для заполнения собственного TListview содержимым папки и рисовать элементы по своему усмотрению, а также взглянуть на Shell Interfaces взаимодействовать с элементами оболочки.

Для элемента управления "рисование владельцем", используемого в качестве списка, я бы порекомендовал rkSmartView Роя Клевер.

http://rmklever.com/?page_id=299

Демо-приложение Роя, размещенное в блоге выше, содержит довольно приличный образец браузера графических миниатюр, который можно превратить в ядро ​​того, что вы делаете. Он добавляет рейтинг "звезд" и всевозможные другие нарисованные владельцем украшения.

http://rmklever.com/?p=318

Привлечение владельца к стандартному общему элементу управления, такому как TListView, чревато ограничениями. Если вы хотите, чтобы владелец полностью или частично нарисовал элемент управления, полностью виртуальный элемент управления, который на 100% внутренне прорисован, а исходный код на 100% предоставлен, - это единственный способ убедиться, что вы не ударитесь о стену или не получите решение на 98% что ты не сможешь принести всю дорогу домой.

Недавно я сделал что-то подобное, изменив вышеуказанный компонент, и это оказалось хорошо.

Другие вопросы по тегам