Есть такой код заполнения сетки иконками 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 или больше. |