Форум: "KOL";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];
ВнизВопрос по KOLmdvShellControls Найти похожие ветки
← →
SergeR © (2007-09-11 16:15) [0]Понадобилось в проекте использовать сабж.
Но хотелось, чтоб в KOLmdvShellListView отображались иконки файлов и папок. Это как нибудь можно реализовать?
В демопроекте - ShellComboBox они тоже не отображаются.
← →
mdw © (2007-09-11 16:56) [1]Иконки системные? У меня отображаются.
← →
SergeR © (2007-09-11 17:03) [2]Да системные. У комбобокса иконки есть, а у Листа пусто.
Вот скрин Вашего демопроекта.
http://keep4u.ru/full/070911/923303d72a82d35cdf/jpg
← →
mdw © (2007-09-11 17:15) [3]А вот скрин у меня
www.kolnmck.ru/img/2.jpg
Сейчас посмотрю где и куда копать.
← →
mdw © (2007-09-11 17:34) [4]Посмотрел.
попробуй в процедуре GetIconIndexs SHGFI_SMALLICON заменить на SHGFI_LARGEICON
procedure GetIconIndexs(ID: PItemIDList; var Normal, Selected: integer);
...
if SHGetFileInfo(PChar(ID), 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX or {SHGFI_SMALLICON}SHGFI_LARGEICON) = 0 then Normal:= -1
else Normal:= SHFileInfo.iIcon;
if SHGetFileInfo(PChar(ID), 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX or {SHGFI_SMALLICON}SHGFI_LARGEICON or SHGFI_OPENICON) = 0 then Selected:= -1
...
У меня правда и так работает.....
Если не поможет посмотри что вообще возвращается в SHFileInfo.iIcon.
Еще можно глянуть в
function TShellFileSys.GetIcons(Index: Integer): PImageList;
что возвращается в строчке:
Result.Handle:= SHGetFileInfo("", 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or Index);
← →
SergeR © (2007-09-11 17:56) [5]Не помогло (.
в SHFileInfo.iIcon возвращается вроде норм - цифирь >0 ))
Result.Handle в GetIcons так же присутствует...
← →
sergeR © (2007-09-11 17:59) [6]PS. Win Vista & XP SP2. KOL last ver
← →
SergeR © (2007-09-11 18:26) [7]Хм. Перегрузился под XP. Там всё работает оказывается.
Под Вистой не работает...странно
← →
mdw © (2007-09-11 18:52) [8]Под Вистой возможно, у меня нет. Тестировал под XP и 2k. Смотри по висте MSDN, если что накопаешь, то поправим для универсальности.
Кстати, заработало с SHGFI_SMALLICON или SHGFI_LARGEICON? Я просто не стал добавлять разную обработку SMALLICON и LARGEICON, т.к. и так SMALLICON работало...
← →
SergeR © (2007-09-11 19:05) [9]
> Кстати, заработало с SHGFI_SMALLICON или SHGFI_LARGEICON?
со SMALLICON работает с Large не проверял. Если надо - могу проверить.
> Под Вистой возможно, у меня нет. Тестировал под XP и 2k.
> Смотри по висте MSDN, если что накопаешь, то поправим для
> универсальности.
MSDN нового нету, только 2005. Гуглю пока.
По структуре SHFileInfo изменений нет никаких вроде.
← →
SergeR © (2007-09-11 19:11) [10]Кстати если использовать связку ListView + imagelist
и дерево грузить вручную то всё прекрасно работает.
Т.е. SHGetFileInfo() в loadsystemicons() в KOL.pas отрабатывает нормально...
← →
mdw © (2007-09-11 19:13) [11]
> со SMALLICON работает с Large не проверял. Если надо - могу
> проверить.
Да зачем, если и так работает?
> По структуре SHFileInfo изменений нет никаких вроде.
посмотри тогда еще по
Result.Handle:= SHGetFileInfo("", 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or Index);
Слошай, а VCL ShellListView работает? Если да, тогда можно там покопать.
← →
mdw © (2007-09-11 19:29) [12]
> > со SMALLICON работает с Large не проверял. Если надо -
> могу > проверить.Да зачем, если и так работает?
Хотя в Висте может стоит попробовать.
← →
SergeR © (2007-09-11 19:40) [13]
>
> посмотри тогда еще по
> Result.Handle:= SHGetFileInfo("", 0, SHFileInfo, SizeOf(SHFileInfo),
> SHGFI_SYSICONINDEX or Index);
>
Хендл возвращает + см [10], т.е. SHGetFileInfo отрабатывет нормально.
> Слошай, а VCL ShellListView работает? Если да, тогда можно
> там покопать.
Не знаю, я VCL весь с панели убрал, чтоб глаза не мозолил ))
← →
mdw © (2007-09-11 21:54) [14]Попрубуй все же SHGFI_LARGEICON, возможно в Висте это принципиально?
Гм . Может Висту пора поставить? типа тестировать? Мне просто и ХР зватает. На работе по любому XP или 2k, а дома не очень много мощи - Atlon XP2000...
← →
SergeR © (2007-09-12 12:53) [15]
> Попрубуй все же SHGFI_LARGEICON, возможно в Висте это принципиально?
в Висте никак не отображается в LV.
> Гм . Может Висту пора поставить? типа тестировать? Мне просто
> и ХР зватает. На работе по любому XP или 2k, а дома не очень
> много мощи - Atlon XP2000...
У меня сейчас виста стоит с Весны на celeron 2.4Ghz с встроенной видюхой и 1ггб памяти (было 512 - но мало ей) + комп работает, как проксик для инета с полным протоколированием на 10 машин+ наставлено куча всяких MS SQL Server 2005 и подобной чуши.
Вроде нормально пашет.
Второй осью XP стоит.
Виста грузится быстрее, работает, субъективно, не медленнее XP.
Покрайней мере после использования XP в течение года я обычно сношу её нафик - тупить начинает страшно.
А Виста пока держится.
← →
mdw © (2007-09-12 13:37) [16]В общем, пока не знаю, в чем причина. Нужно ставить висту и смотреть.
Попробуй такой вариант, может поможет, хотя врядли:
function TShellFileSys.GetIcons(Index: Integer): PImageList;
begin
case Index of
SHGFI_ICON: if FIcons <> nil then Exit;
SHGFI_SMALLICON: if FSmallIcons <> nil then Exit;
end;
Result:= NewImageList(Applet);
Result.LoadSystemIcons(SHGFI_SMALLICON = Index);
case Index of
SHGFI_ICON: FIcons:= Result;
SHGFI_SMALLICON: FSmallIcons:= Result;
end;
end;
Ну еще можно попробовать GetIconIndexs поставить SHGFI_ICON.
← →
SergeR © (2007-09-13 14:34) [17]Такой способ пробовал еще вначале. Не помогает.
Думается трабла не в GetIcons или GetIconIndexes, а где то еще.
Т.к. в комбобоксе ведь всё нормально отображается хоть со smallicon, хоть с Largeicon, а там эти функции ведь тоже используются.
Кстати формирование списка на Висте происходит очень медленно.
Я попробовал зайти в windows\system32. Всё прога задумалась надолго.
Пришлось вырубать из диспетчера.
Пробовал тоже на XP\Win2003 - читает на порядок быстрее.
← →
mdw © (2007-09-13 14:57) [18]Поставил Висту. Победил!!! :)) Сам дурак был.
> Кстати формирование списка на Висте происходит очень медленно.
И формирование быстрее стало на висте:)
Сегодня обновлю. Сейчас займусь, много чего обновить есть.
← →
SergeR © (2007-09-13 15:27) [19]Огромадный биг сенкс )) !!!
← →
mdw © (2007-10-01 17:20) [20]Если интересно, обновил на kolnmck.ru. Много переделал, стало работать в разы быстрее.
← →
mdw © (2007-10-01 17:21) [21]+ поддержка WinCE
← →
SergeR © (2007-10-01 18:08) [22]Да. Стало работать на много быстрее. Спасибо !
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.039 c