Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Как сохранить иконку


Автор: Akella 28.4.2004, 15:34
Есть такой код заполнения сетки иконками
Icons - это компонента TStringGrid
Код

procedure TForm1.Open1Click(Sender: TObject);
Var
CurItem: LongInt;
pName: array [0..255] of char;
fName: String[13];
N:Word;
IconH:hIcon;
begin
 CurItem:=0;
 if OpenDialog1.Execute then begin
   fName:=ExtractFileName(OpenDialog1.FileName);
   StrPCopy(pName, OpenDialog1.FileName);
   N:=0;
   With Icons do repeat
     IconH:=ExtractIcon(hInstance, pName, N);
     if IconH>1 then begin
       Col:=CurItem Mod ColCount;
       if (CurItem Div ColCount) >=RowCount then
         RowCount:=RowCount+1;
       Row:=CurItem Div ColCount;
       icons. Cells[Col,Row]:=Format('#%d(%s)',[CurItem+1,fName]);
        Objects[col,row]:=TIcon.Create;

       With objects [Col,Row] as TIcon do
         Handle:=IconH;
       CurItem := CurItem + 1;
       Image1.Picture.Icon.Handle:=IconH;
       Inc(N);
     end;//if (CurItem Div ColCount) >=RowCount then
   until IconH<=1;
 end;//if OpenDialog1.Execute then begin
end;


Иконки рисуются нормально, но при сохранении

Код
 if SaveDialog1.Execute then with Icons do
   with objects[col,row] as TIcon do
     SaveToFile(SaveDialog1.FileName);


иконки сохраняются в формате 32х32 на 16 цветов
Размер, в принципе не имеет особого значения, но вот 16 цветов меня смущает,
если можно так сказать, хотелось бы 256 или больше.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)