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




Вниз

Как зная путь к .exe файлу узнать его картинку ? 


skovorodka   (2002-03-17 11:03) [0]

???



VID   (2002-03-17 12:25) [1]

Приведённая ниже функция добавляет в ImageList иконку файла, указанного по его полному имени.


//FileName - Имя файля, иконка которого должна быть добавлена в ImageList
// ImageList - объект-ImageList, в который должна быть добавлена иконка
//SMallIcon - если TRUE, то будет добавлена маленькая иконка, иначе - будет добавлена большая иконка
//ClearImageList - если TRUE, то сожержимое ImageList будет очищено перед добавлением новой иконки

function AddIcon(FileName:String; ImageList:TImageList; SmallIcon:Boolean; ClearImageList:Boolean):Boolean;
var
icon:TIcon;
Icon_Height, Icon_Width:Integer;
IconIndex : word;
begin

if (fileexists(filename) = false) and (directoryexists(filename)=false)then
begin
Result:=False;
ICON.FREE;
Exit;
end;

iconindex:=1;
icon:=ticon.create;
icon.Handle:=ExtractAssociatedIcon(HInstance,Pchar(FileNAme),iconindex);

if Icon.Handle = 0 then
begin
result:=false;
exit;
end;

If ClearImageList=true then imagelist.clear;

if SmallIcon = True then
begin
Icon_Width := 16;
Icon_Height := 16;
end
else
begin
Icon_Width := 32;
Icon_Height := 32;
end;

if ImageList.Width <> Icon_width then ImageList.Width := Icon_width;
if ImageList.Height <> Icon_Height then ImageList.Height := Icon_Height;
If ImageList.AddIcon (icon) <>-1 then Result := True else Result := False;
icon.free;
end;



Song   (2002-03-17 16:32) [2]

Да.... VID ты нагородил!!! :)))
Всего лишь Win API: ExtractAssociatedIcon



VID   (2002-03-17 17:44) [3]

TO Song: Ну так - то оно и есть... в корне функции ADDICON лежит EXTRACTASSOCIATEDICON. Просто я дал рабочую функцию, которая подходит для большинства случаев отображения множества файлов, в каком-либо объекте, с помощь ImageList. :)



Song   (2002-03-17 22:24) [4]

2VID, OK, рабочий код в двух строках:



Var IconIndex:Word;

....
IconIndex:=1;
DrawIcon(любой_канвас.Handle,x,y,ExtractAssociatedIcon(Handle,PChar("имя_файла"),IconIndex));



VID   (2002-03-17 22:34) [5]

TO SONG: Что ты пытаешься мне доказать ? :)
Таким методом, который привёл ты, вряд ли отобразшь что-нибудь в TLISTVIEW .



Song   (2002-03-17 22:44) [6]

2VID, а что у TListView нет канваса?



Shirson   (2002-03-18 10:50) [7]

Рисовать иконки на канве TListView, это все равно что клеить переводные картинки на экран телевизора :)



VID   (2002-03-18 11:42) [8]

Действительно, изврат :) давай уж сразу на машинные коды переходить :)




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




Наверх





Память: 0.73 MB
Время: 0.04 c
7-91091           CS                    2001-12-19 09:29  2002.03.28  
LPT-порт


1-90928           Michael C             2002-03-11 17:13  2002.03.28  
Массивы и IP


1-90828           Bmax                  2002-03-16 07:32  2002.03.28  
Клавиатура


3-90783           Malder                2002-03-02 12:29  2002.03.28  
Как создать триггер ?


6-91009           KHunter               2002-01-11 08:59  2002.03.28  
тонкий клиент