![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ExtractIcon [D6, WinXP]
kukuikar © (2004-09-18 10:03:00)подскажите плиз
как избавиться от того что при извлечении иконки (ExtractIcon) из файла shell32.dll или из любой другой библиотеки XP, она становиться не такой как в DLL, т.е. количество цветов уменьшается и выглядит она страшно?
Cobalt (2004-09-21 01:18:00) [1]Может, проблема в сохранении? Посмотри, как сохраняется иконка, насколько я помню - в Дельфёвых компонентах есть какое-то ограничение на 16 цветов, но неуверен.
В лющем, исходники тебе доступны - ищи и да обрящеши!
kukuikar (2004-09-20 11:54:00) [2]Удалено модератором
Примечание: Не надо флудить.
kukuikar (2004-09-20 10:11:00) [3]что никто не хочет помочь?
kukuikar (2004-09-20 09:12:00) [4]1
kukuikar (2004-09-20 09:07:00) [5]прорисовка иконок происходит в TStringGrid.
Я наверное неточно сыормулировал вопрос:
прис охранении иконки в файл *.ico она теряет какое-то количество цветов и выглядит непотребно. А в стринг гриде она выглядит нормально, как и должна.
var
icons: TStringGrid;
DrawIcon: TMenuItem;
SaveIcon: TMenuItem;
procedureTForm1.DrawIconClick(Sender: TObject);
var
CurItem: longint;
pName: array [ 0..255 ] of char;
fName: string [ 13 ];
N: word;
IcoH: hIcon;
path: String;
FileLst: TStringList;
begin
GetDir(0, path);
CurItem:=0;
ifOpenDialog1.Execute then
begin
fName:=ExtractFileName(OpenDialog1.Filename);
StrPCopy ( pName, OpenDialog1.Filename );
N := 0;
withIcons do
repeat
IcoH := ExtractIcon ( hInstance, pName, N );
ifIcoH > 1 then
begin
Col := CurItem MODColCount;
if( CurItem DIV ColCount ) >= RowCount then
RowCount := RowCount + 1;
Row := CurItem DIV ColCount;
Cells [Col,Row] := Format('#%d',[CurItem+1]);
Objects [ Col, Row ] := TIcon.Create;
withObjects [ Col, Row ] ASTIcon do
Handle := IcoH;
CurItem := CurItem + 1;
Inc ( N );
end;
untilIcoH <= 1;
end;
end;
....
procedureTForm1.SaveIconClick(Sender: TObject);
begin
ifSaveDialog1.Execute then
withIcons do
withObjects [Col, Row] ASTIcon do
SaveToFile(SaveDialog1.Filename);
end;
Alx2 (2004-09-18 10:23:00) [6]>kukuikar © (18.09.04 10:03)
У меня нормально отображается. Может, тебе стоит код показать?