Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.19;
Скачать: CL | DM;

Вниз

SHGetSystemInfo и иконки   Найти похожие ветки 

 
CatAlone   (2007-07-19 19:18) [0]

Привет всем! Дело в том, что у меня не все иконки отображаются в листвью корректно. Я так полагаю, что это из-за того, что первым параметром я указываю не существующие файлы. Прав ли я и как это можно обойти?


 
begin...end ©   (2007-07-19 20:06) [1]

Может быть, имеется в виду SHGetFileInfo ? Если да, то см. MSDN:

If the uFlags parameter includes the SHGFI_USEFILEATTRIBUTES flag, pszPath parameter does not have to be a valid file name. The function will proceed as if the file exists with the specified name and with the file attributes passed in the dwFileAttributes parameter. This allows you to obtain information about a file type by passing just the extension for pszPath and passing FILE_ATTRIBUTE_NORMAL in dwFileAttributes.

То есть, код должен быть примерно таким:

var
 Info: TShFileInfo;
begin
 if SHGetFileInfo(".exe", FILE_ATTRIBUTE_NORMAL, Info, sizeof(Info), SHGFI_ICON or SHGFI_USEFILEATTRIBUTES) <> 0 then
   // в поле Info.hIcon лежит хэндл нужной иконки
 ...
end


 
CatAlone   (2007-07-19 20:09) [2]

Да ты прав. В спешке неправильно написал. Надо будет попробовать.


 
CatAlone   (2007-07-20 20:05) [3]

Что-то все равно не получается. Привожу код.

procedure TForm1.FormCreate(Sender: TObject);
var
sysimagelist:uint;
SFI:tshfileinfo;
begin

sysimagelist:=SHGetFileInfo("",0,SFI,sizeof(tshfileinfo),SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
if sysimagelist<>0 then begin
listview1.SmallImages.Handle:=sysimagelist;
listview1.SmallImages.ShareImages:=true;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
shinfo:tshfileinfo;
begin
.......

ext := LowerCase(ExtractFileExt(fname));
shgetfileinfo(pchar("*."+ext),0,shinfo,sizeof(shinfo),SHGFI_TYPENAME or SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
listview1.Items.Add.Caption:=fdobname;
listview1.Items.Item[i-1].ImageIndex:=shinfo.iIcon;
end.


Здесь fname это имя несуществующего файла.


 
begin...end ©   (2007-07-20 21:02) [4]

> CatAlone   (20.07.07 20:05) [3]

Основная мысль сообщения [1] заключалась в использовании флага SHGFI_USEFILEATTRIBUTES. В коде [3] я его не наблюдаю...


 
CatAlone   (2007-07-20 21:09) [5]

begin...end
Извиняюсь за свою тупость. Просто в английском не силен я и упор делал на твой пример.
Спасибо БОЛЬШОЕ!!!! Помогло.



Страницы: 1 вся ветка

Текущий архив: 2007.08.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
2-1185347898
Kolan
2007-07-25 11:18
2007.08.19
Чем работать с DBF файлами


11-1168181437
retr
2007-01-07 17:50
2007.08.19
Есть ли TCP клиент для KOL умеющий работать через SOCKS 4/5?


15-1184915752
oxffff
2007-07-20 11:15
2007.08.19
Компилятор Опять грешит


11-1168179075
Trible
2007-01-07 17:11
2007.08.19
поменять caption ы всех пунктов Меню


15-1184710325
Германн
2007-07-18 02:12
2007.08.19
Компилятор Дельфи