TImageList ??????(100分)

  • 主题发起人 主题发起人 tonyoa
  • 开始时间 开始时间
T

tonyoa

Unregistered / Unconfirmed
GUEST, unregistred user!
用TImageList动态载入BMP图时,为何当图的Height及Width 小于TImageList所设定的Height或Width时就出错。

错误:"Invalid image sizq" ,

有没有可替代TImageList的控件,哪里下载。

 
建议使用TLMDLImageList
 
Dear cwmdelpher

在哪里有下载???

 
51delphi有
LMD tools
 
好不容易下了并装了,但是TLMDImageList 不能与TListView配合使用。

还有没有别的办法解决TImageList的动态载图问题。

?????
 
这好像没什么办法的,不过看是否有个stretch属性,可以缩放的
 
imagelist中的图形必须是一样大小的,想别的方法吧
 
我都估到没办法,但ListView能否不通过ImageList载图,能否直接动态载入ListView呢??
 
给你一个过程,其将小图放在与ImageList大小一样的画布的中央,然后加入。其实,静态加入时就采取了类似的方法。
procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap1, Bitmap2: TBitmap;
Rect: TRect;
begin
Bitmap1 := TBitmap.Create;
Bitmap2 := TBitmap.Create;
Bitmap1.Transparent := true;
Bitmap1.TransparentColor := clNone;
Bitmap2.Transparent := true;
Bitmap2.TransparentColor := clNone;
Bitmap2.Height := ImageList1.Height;
Bitmap2.Width := ImageList1.Width;
Bitmap1.LoadFromFile('C:/My Documents/My Pictures/图标/Bitmap3.bmp');
Rect := Bitmap1.Canvas.ClipRect;
Rect.Left := (Bitmap2.Width - Bitmap1.Width) div 2 - Rect.Left;
Rect.Top := (Bitmap2.Height - Bitmap1.Height)div 2 - Rect.Top;
Rect.Right := (Bitmap2.Width - Bitmap1.Width)div 2 + Rect.Right;
Rect.Bottom := (Bitmap2.Height - Bitmap1.Height)div 2 + Rect.Bottom;
Bitmap2.Canvas.CopyRect(Rect, Bitmap1.Canvas, Bitmap1.Canvas.ClipRect);
ImageList1.Add(Bitmap2, nil);
Bitmap1.Free;
Bitmap2.Free;
end;
 
后退
顶部