Текущий архив: 2011.02.06;
Скачать: CL | DM;
ВнизКак загрузить иконку нужного формата? Найти похожие ветки
← →
DenisArd (2008-12-14 23:49) [0]Как из файла .ico, содержащего иконки нескольких форматов, загрузить иконку заданного размера и глубины цвета? Например 32-битную 48*48? С размером вроде понятно более-менее понятно, перед загрузкой задать свойство Size объекта типа TIcon и будет загружена наиболее близкая по размеру, а как быть с цветностью?
← →
andreil (2008-12-23 12:03) [1]Для этого лично я немного изменил файл KOL.pas, дописав там функции TIcon.LoadFromFIleEx и TIcon.LoadFromStreamEx, в которых и осуществлялась загрузка требуемой иконки. Завтра смогу дать готовый кусок файла.
← →
andreil (2008-12-23 12:06) [2]Далешь следующее:
procedure TIcon.LoadFromStream(Strm: PStream; W, H, bits: integer);
......
for I := 1 to IH.idCount do
begin
if Strm.Read( IDI, Sizeof( IDI ) ) <> Sizeof( IDI ) then Exit;
Inc( SumSz, IDI.dwBytesInRes + Sizeof( IDI ) );
D := IDI.bWidth - DesiredSize;
if D < 0 then D := -D;
{}
if (IDI.bWidth=W) and (IDI.bHeidht=H) and (IDI.bBitCount=bits) then
break;
{]
if D < FoundSz then
begin
FoundSz := D;
FoundIDI := IDI;
end;
end;
......
И все будет ОК ;)
Страницы: 1 вся ветка
Текущий архив: 2011.02.06;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.003 c