![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Я могу получить в Imagelist виндосовские иконки, как теперь [D7]
Regards © (2004-12-09 01:26:00)определить с какой иконкой ассоциирован нужный мне тип файла ? '.txt', '.jgp' и другие.
SHGetDesktopFolder(Desktop);
SHGetSpecialFolderLocation(Application.Handle, CSIDL_HISTORY, HistoryPIDL);
ImageList1 := TImagelist.Create(Self);
ImageList1.Handle := SHGetFileInfo(Pchar(HistoryPidl), 0, FileInfo,
SizeOf(FileInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
Имеется в виду нужно получить номре в ИмаджЛисте. Нужно, чтобы использовать в ТриВью.
Regards (2004-12-11 03:42:00) [1]
> Dolt © (10.12.04 09:26) [3]
> s:=ansilowercase(ExtractFileExt(s));
> SHGetFileInfo(PChar(s), 0, MoreInfo, SizeOf(MoreInfo), SHGFI_USEFILEATTRIBUTES
> or SHGFI_ICON);
> ImageIndex:=MoreInfo.Iicon;
Получается. Спасибо !
Где бы мне чего-нибудь почитать по этому вопросу. А то в справке Дельфи нихрена нету.
> Rouse_ © (10.12.04 09:35) [4]
> Второе - зачем тебе нужен в таком варианте кода вот эта
> строчка "SHGetDesktopFolder(Desktop);"? Она тут ни к чему.
Просочилась. Недовырезанный результат моих эксперементов.
> Третье - к твоему сведенью интерфейс IShellFolder имеет
> метод EnumObjects
Я не знаю как этим пользоваться.
Rouse_ (2004-12-10 09:35:00) [2]какую тебе ассоциацию?
Ты сначала посмотри что ты получаешь...
procedure TForm1.Button1Click(Sender: TObject);
var
FileInfo : TSHFileInfo;
HistoryPidl : PItemIDList;
Desktop : IShellFolder;
I: Integer;
begin
SHGetDesktopFolder(Desktop);
SHGetSpecialFolderLocation(Application.Handle, CSIDL_HISTORY, HistoryPIDL);
ImageList1.Handle := SHGetFileInfo(Pchar(HistoryPidl), 0, FileInfo,
SizeOf(FileInfo), SHGFI_PIDL or SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
for I := 0 to 100 do
ImageList1.Draw(Canvas, 16 * I, 10, I);
end;
Это раз.
Второе - зачем тебе нужен в таком варианте кода вот эта строчка "SHGetDesktopFolder(Desktop);"? Она тут ни к чему.
Третье - к твоему сведенью интерфейс IShellFolder имеет метод EnumObjects
Dolt (2004-12-10 09:26:00) [3]s:=ansilowercase(ExtractFileExt(s));
SHGetFileInfo(PChar(s), 0, MoreInfo, SizeOf(MoreInfo), SHGFI_USEFILEATTRIBUTES or SHGFI_ICON);
ImageIndex:=MoreInfo.Iicon;
Regards (2004-12-10 01:32:00) [4]Да, мастера, это сложный вопрос. Мастерский.
Regards (2004-12-09 01:30:00) [5]
var
FileInfo : TSHFileInfo;
HistoryPidl : PItemIDList;
Desktop : IShellFolder;
ImageList1 : TImagelist;