Схема загрузки иконок

Какова наилучшая схема загрузки иконок для приложения?

Немного предыстории... Я создаю FTP-подобное приложение с 4 панелями (панель локальной папки, панель локального файла, панель облачной папки, панель облачного файла). В обеих файловых панелях одним из столбцов является имя файла, рядом с которым я хочу отобразить значок (точно так же, как вы видите в проводнике Windows).

Делать к тому, что у меня нет физического файла для всех файлов в облаке, мне приходится тыкать в реестр (с расширением файла в руках) и получать комбинацию ExeFileName и IconIndex для этого типа файла, а оттуда извлекать значок. Тем не менее, я думаю, что у меня есть следующие варианты, и хотел бы узнать ваше мнение:

1) Загружайте все комбинации ExeFileName/IconIndex для каждого расширения (например: .doc, .txt) при загрузке программы и по мере необходимости запрашивайте и используйте их для вызова API ExtractIcon Win32.

2) Заглядывать в реестр только при необходимости, чтобы получить комбинации ExeFileName/IconIndex и вызывать API ExtractIcon Win32 для значка соответствующего типа файла.

3) Сохраните 1-байтовый файл каждого известного расширения в каталоге и вызовите SHGetFileInfo Win32 API и при необходимости извлеките соответствующий значок из файла.

4) Сохраните файл физического значка для каждого расширения файла во время установки в каталоге и вызовите его при необходимости (но не изменится при изменении, добавлении или удалении ассоциации файлов).

5) Выбросьте все это и купите набор значков в магазине значков, в котором есть 1000 лучших известных типов файлов значков, и отображайте неизвестный тип значков других типов файлов.

Спасибо за ваше время и комментарии.

-Джесси Хоул


person Jessy Houle    schedule 31.10.2008    source источник


Ответы (1)


Я думаю, что вариант 2 звучит наиболее разумно, если вы кешируете результаты, поэтому вы запрашиваете файл данного типа только один раз, даже если файлов этого типа много.

Я думаю, что варианты 4 и 5 исключены, так как они не будут отражать изменения в ассоциациях. Это может сбить пользователя с толку, если значки в вашем приложении отличаются от значков проводника Windows.

Варианты 1 и 3 кажутся излишними, особенно потому, что вы, скорее всего, будете показывать самые распространенные значки много раз и, возможно, никогда не будете показывать более непонятные.

person pkaeding    schedule 31.10.2008