Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];




Вниз

Как в Image получить иконку связанную с любым файлом? 


Cansas & Rush   (2002-04-19 23:30) [0]

Как в Image получить иконку связанную с любым файлом?



Stexen   (2002-04-19 23:46) [1]

Писал я компоненту котрая выводила картинки в зависимости от мастдаевского индекса который указываешь в теге... кароче если надо пиши на мыло скину щас искать неохота



Cansas & Rush   (2002-04-20 00:19) [2]

А без VCL?



~Sergius   (2002-04-20 01:44) [3]

ExtractAssociatedIcon



Song   (2002-04-20 09:11) [4]

Здесь нужно разделять: иконка связанная с файлом (хранящаяся в нём) или связанная с его типом (по реестру, через SHFileOperation)



Cansas & Rush   (2002-04-20 15:54) [5]

А как проверить можно ли вытащить иконку из файла с помощью функции ExtractIcon, а если нельзя, то с помощью ExtractAssociatedIcon?
Заранее благодарен!



Song   (2002-04-20 16:31) [6]

С помощью ExtractAssociatedIcon можно всегда вытащить икону (если она конечно есть, если нет, то и ExractIcon не поможет). Другое дело, ту ли Вы икону вытащите, которую Вам нужно?



olookin   (2002-04-20 16:58) [7]

Мне всегда помогало следующее:

procedure TForm1.Button1Click(Sender: TObject);
var r: array [0..1000] of char;
begin
if opendialog1.execute then begin
strpcopy(r,opendialog1.filename);
im[n]:=TImage.Create(Form1); im[n].Parent:=ScrollBox1;
im[n].width:=32; im[n].height:=32;
im[n].left:=10+32*w+w*10; im[n].top:=10;
im[n].Picture.icon.handle:=ExtractIcon(Hinstance,r,0);
w:=w+1; n:=n+1; end;
end;



Cansas & Rush   (2002-04-20 17:42) [8]

ExtractIcon может корректно стащить иконку только из Exe, Dll и Ico файлов!
А ExtractAssociatedIcon со всех, только проблема в том, что она вытаскивает стандартные иконки, иконки связанные с данным типом файлов!
Вопрос в том, как программно проверить из какого файла требуется вытащить иконку, и если это exe, dll или ico, тогда применить ExtractIcon, а если это другой, тогда в Image помещаем стандартную иконку с этого файла с помощью функции ExtractAssociatedIcon!
Заранее благодарен за ответ!



Song   (2002-04-20 17:52) [9]

ExtractFileExt() вернёт вам расширение файла
И далее по проверке.

Всё-таки я не соглашусь с Вашим утверждением, что ExtractAssociatedIcon() возвращает иконку, ассоциированную с типом, она как раз возвращает ассоциированную с файлом (т.е. та, которая в нём заложена), а вот икону, ассициированную с типом можно выдернуть только через реестп. Это две вещи не всегда одинаковые. И ещё: ExtractAssociatedIcon() возвращает только 32х32



Набережных С.   (2002-04-20 19:32) [10]


> Cansas & Rush (20.04.02 15:54)

ExtractAssociatedIcon извлекает иконку, которая рисуется рядом с именем файла - либо ассоциированную с типом, либо содержащуюся в указанном файле(для EXE, ICO и т.п.). Поиграй с этим кодом, может и вопросы отпадут:

n:word;

if OpenDialog1.Execute then
Image1.Picture.Icon.Handle:=ExtractAssociatedIcon(hInstance,PChar(OpenDialog1.FileName),n);




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.02 c
1-2617            Афоня                 2002-04-18 13:31  2002.05.02  
Как создать калькулятор


7-2700            sammy                 2002-02-07 08:42  2002.05.02  
Корзина


3-2476            XanderMan             2002-04-10 20:38  2002.05.02  
Медленно работает метод TIBTable.Locate


3-2463            Sewix                 2002-04-09 14:56  2002.05.02  
Sql запрос как выбрать все поля кроме конкретного одного


1-2564            alm                   2002-04-19 09:35  2002.05.02  
Динамический массив исчезает...