Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 13:01   #1
sashahttp
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 17
Восклицание ShellListView - отображение файлов

есть ShellListView, подключенный к ShellTreeView, выбераю папку в ShellTreeView, файлы отображаются в ShellListView. Но, если в директории находится файл Корела (*.cdr) - выдает ошибку (Floating point division by zero). Может и сдругими расширениями есть проблемы - не проверял. Кто знает, как решить эту проблему?
sashahttp вне форума Ответить с цитированием
Старый 20.11.2011, 06:44   #2
i_Mikha
Новичок
Джуниор
 
Регистрация: 20.11.2011
Сообщений: 1
По умолчанию

Цитата:
Сообщение от sashahttp Посмотреть сообщение
есть ShellListView, подключенный к ShellTreeView, выбераю папку в ShellTreeView, файлы отображаются в ShellListView. Но, если в директории находится файл Корела (*.cdr) - выдает ошибку (Floating point division by zero). Может и сдругими расширениями есть проблемы - не проверял. Кто знает, как решить эту проблему?
Стоит XP sp3, происходит тоже самое. Ошибка вылезает на файлах CorelDraw X4 и X5. Если текстовый файл переименовать в *.cdr, *.cmx, *.cpt(еще некоторые файлы корела), то ошибки нет. Может быть это происходит из за того, что эти файлы - зип-архивы и содержат подкаталоги.

У меня очень давно был установлен аналогичный компанент - JamiShellListView, видимо созданный на базе стандартного. Понадобился - вскрылась эта проблема. Решил так: пошагово (F7) дошел до места, пока не открылся файл ShellControls. Там, в procedure TJamShellList.CNNotify(var Message: TWMNotify);
вместо строки iImage := FShellBrowser.IconNumber;
я вставил
if (ansilowercase(extractfileext(fShel lBrowser.GetShellObjectName))='.pat ')or
(ansilowercase(extractfileext(fShel lBrowser.GetShellObjectName))='.cdr ')or
(ansilowercase(extractfileext(fShel lBrowser.GetShellObjectName))='.dat a')or
(ansilowercase(extractfileext(fShel lBrowser.GetShellObjectName))='.cmx ')or
(ansilowercase(extractfileext(fShel lBrowser.GetShellObjectName))='.cpt ')then iImage :=5 else
iImage := FShellBrowser.IconNumber;

То есть, компанент ругался на иконку, и вместо кореловской он сейчас подставляет какую то другую, зато не вылазят ошибки.
Не знаю, как правильно, но я вышел из положения так
i_Mikha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Показать расширение файлов в ShellListView artemavd Общие вопросы Delphi 8 12.01.2010 12:06
Отображение файлов tif на форме AlexandrSid Общие вопросы Delphi 7 28.05.2009 16:15
Отображение скрытых файлов и папок и отображение розширения всех файлов beegl Общие вопросы Delphi 10 14.12.2008 22:02
ShellListView ant_f_moro Компоненты Delphi 0 06.01.2008 22:42
Запуск файлов в ShellListView двойным щелчком Македонский Компоненты Delphi 2 31.08.2007 11:54