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

Вниз

Работа с ExtractIconEx - есть вопросы   Найти похожие ветки 

 
Jel ©   (2004-05-22 14:52) [0]

Нужно получть все иконки из файла, причем как большие (32х32) так и маленькие (16х16). Пишу


type ThIconArray = array[0..0] of hIcon;
    PhIconArray = ^ThIconArray;

function ExtractIconEx(lpszFile: PAnsiChar;
 nIconIndex: Integer;
 phiconLarge : PhIconArray;
 phiconSmall: PhIconArray;
 nIcons: UINT): UINT; stdcall;
 external "shell32.dll" name "ExtractIconExA";

procedure TForm1.aScanFileExecute(Sender: TObject);
var i : integer;
   NumIcons: integer;
   pTheLargeIcons: phIconArray;
   pTheSmallIcons: phIconArray;

begin
 if OpenDialog1.Execute then begin
   NumIcons := ExtractIconEx(pchar(OpenDialog1.FileName), -1, nil, nil, 0);
   GetMem(pTheLargeIcons, NumIcons * sizeof(hIcon));
   GetMem(pTheSmallIcons, NumIcons * sizeof(hIcon));
   FillChar(pTheLargeIcons^, NumIcons * sizeof(hIcon), #0);
   FillChar(pTheSmallIcons^, NumIcons * sizeof(hIcon), #0);
   ExtractIconEx(pchar(OpenDialog1.FileName), 0, pTheLargeIcons, pTheSmallIcons, NumIcons);
   for i := 0 to NumIcons - 1 do begin
     SetLength(IconArray, Length(IconArray) + 1);
     IconArray[Length(IconArray)-1] := TIcon.Create;
     IconArray[Length(IconArray)-1].Handle := pTheLargeIcons^[i];
     SetLength(IconArray, Length(IconArray) + 1);
     IconArray[Length(IconArray)-1] := TIcon.Create;
     IconArray[Length(IconArray)-1].Handle := pTheSmallIcons^[i];
     ShowMessage(IntToStr(IconArray[Length(IconArray)-1].Width));
   end;
   FreeMem(pTheLargeIcons, NumIcons * sizeof(hIcon));
   FreeMem(pTheSmallIcons, NumIcons * sizeof(hIcon));
 end;
end;


в итоге получаю и большие и маленькие иконки но - изображение маленькой иконки (16х16) рисуется в левом верхнем углу квадрата 32 на 32. То есть на выходе и большие и маленькие иконки имеют одинаковый размер. Почему так? И как получить маленькие иконки правильного размера?


 
Jel ©   (2004-05-22 22:12) [1]

up, однако. Вопрос остается открытым.


 
Jel ©   (2004-05-24 11:10) [2]

up. Неужели никто не пользовался?



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

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

Наверх




Память: 0.47 MB
Время: 0.041 c
14-1086376271
Копир
2004-06-04 23:11
2004.07.04
Один немецкий студент ежедневно, посещая Университет,


14-1086983536
Godlike
2004-06-11 23:52
2004.07.04
Game Muonline


3-1086779940
AleXqwq
2004-06-09 15:19
2004.07.04
TdxDBGrid right click


4-1083919701
Сашенька
2004-05-07 12:48
2004.07.04
ScreenShot


8-1082279093
forest
2004-04-18 13:04
2004.07.04
Рисование гна TImage