Вот что вышло, после некоторого редактирования: Но хотелосьбы увидеть другие варианты решения сей проблемы
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, ComCtrls, ToolWin, ImgList, ExtDlgs;
type TForm1 = class(TForm) Button1: TButton; ImageList1: TImageList; ToolBar1: TToolBar; ToolButton1: TToolButton; SpinEdit1: TSpinEdit; Label1: TLabel; OpenPictureDialog1: TOpenPictureDialog; Button2: TButton; Button3: TButton; procedure SpinEdit1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SpinEdit1Change(Sender: TObject); begin ToolButton1.ImageIndex := SpinEdit1.Value; end;
procedure TForm1.Button1Click(Sender: TObject); var bmp: TBitmap; begin if openpicturedialog1.Execute then begin bmp := TBitmap.Create; bmp.LoadFromFile(OpenPictureDialog1.FileName); bmp.Width := ImageList1.Width; bmp.Height := ImageList1.Height; ImageList1.Add(bmp,nil); bmp.Free; end; end;
procedure TForm1.Button2Click(Sender: TObject); var bufbmp,bmp: TBitmap; i:integer; begin bmp := TBitmap.Create; bufbmp := TBitmap.Create; bmp.Height := ImageList1.Height; bmp.Width := ImageList1.Width * ImageList1.Count; for i:=0 to ImageList1.Count-1 do if ImageList1.GetBitmap(i,bufbmp) then bmp.Canvas.Draw(i*ImageList1.Width,0,bufbmp);
bmp.SaveToFile(ExtractFileDir(ParamStr(0))+'\pics.bmp'); bmp.Free; bufbmp.Free; end;
procedure TForm1.Button3Click(Sender: TObject); var bmp: TBitmap; begin bmp := TBitmap.Create; bmp.LoadFromFile(ExtractFileDir(ParamStr(0))+'\pics.bmp');
ImageList1.Assign(nil); ImageList1.Add(bmp,nil); bmp.Free; end;
end. | |