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

Вниз

Как в 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);



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

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

Наверх




Память: 0.49 MB
Время: 0.01 c
1-2536
55555
2002-04-18 11:12
2002.05.02
форма


7-2705
Макс
2002-02-05 17:48
2002.05.02
Получение изображений со сканера


14-2673
SPeller
2002-03-27 11:07
2002.05.02
Вопрос не о Дельфи


14-2653
IronHawk
2002-03-26 13:32
2002.05.02
Как в Едит загружать данные из файла ?


14-2660
aus
2002-03-26 22:19
2002.05.02
Редактирование анкеты