Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


skovorodka ©   (2002-03-17 11:03:00) 

???


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

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


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

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


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

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


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

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


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

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



Var IconIndex:Word;

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


VID   (2002-03-17 17:44:00) [6]

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


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

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


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

Приведённая ниже функция добавляет в 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо