Форум: "Основная";
Текущий архив: 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