Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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);



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

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

Наверх




Память: 0.46 MB
Время: 0.004 c
14-2673
SPeller
2002-03-27 11:07
2002.05.02
Вопрос не о Дельфи


1-2550
mnemonic
2002-04-18 17:33
2002.05.02
редактор компоненты


4-2725
Александр_
2002-02-27 19:20
2002.05.02
Вопрос о Звуке.


1-2588
YurikVN
2002-04-16 00:45
2002.05.02
EXE из EXE


1-2603
Лана Розанова
2002-04-19 21:18
2002.05.02
MediaPlayer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский