用Listview实现缩略图时出现问题

heikeyanxi 2009-04-28 07:49:04
主要代码如下,当点击button时listview里的图片怎么全部都是一个图片啊,麻烦大家帮我看下哪里出问题了?

procedure TForm1.Button2Click(Sender: TObject);
var
TheBitmap:TBitmap ;
TheJpeg:TJPEGImage;
aa:tlistitem;
i:integer;
begin
for i:=1 to 4 do
begin
TheJpeg := TJPEGImage.Create;
TheJpeg.LoadFromFile('D:\我的文档\ico\pic\'+inttostr(i)+'.jpg');
TheBitmap := TBitmap.Create ;

TheBitmap.Assign(TheJpeg);
TheBitmap.Canvas.StretchDraw(RECT(0, 0, 130, 130),TheBitmap);
ImageList1.Add(TheBitmap, nil) ;
aa:=listview1.Items.Add;
aa.Caption:=inttostr(i)+'.jpg';
FreeAndNil(TheBitmap) ;
FreeAndNil(TheJpeg);
end;
end;

...全文
70 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
heikeyanxi 2009-04-29
  • 打赏
  • 举报
回复
貌似改大改小都不行,你可以试下的
sanguomi 2009-04-29
  • 打赏
  • 举报
回复
TheBitmap.Canvas.StretchDraw(RECT(0, 0, 130, 130),TheBitmap);
你的高度,宽度太大了
你要改小
heikeyanxi 2009-04-29
  • 打赏
  • 举报
回复
回楼上:
Imagelist的高和宽我都设置了,还是不行
sanguomi 2009-04-28
  • 打赏
  • 举报
回复

var
Test: TJPEGImage;
Bmp: TBitmap;
begin
Test := TJPEGImage.Create;
Test.LoadFromFile('....jpg');

Bmp := TBitmap.Create;
Bmp.Assign(Test);
Bmp.Canvas.StretchDraw(RECT(0, 0, 13, 13), Bmp);
ImageList1.Width := 13;
ImageList1.Height := 13;
ImageList1.Add(Bmp, nil);

Test.Free;
Bmp.Free;

你加个大小
heikeyanxi 2009-04-28
  • 打赏
  • 举报
回复
不行啊,楼上两位朋友的方法用了后,每个item只显示了图片的一部分,像是图片被分成了一块一块的。有解决方法吗?
bladz 2009-04-28
  • 打赏
  • 举报
回复
aa.ImageIndex := i - 1;
bladz 2009-04-28
  • 打赏
  • 举报
回复
ImageList1.Clear;
ImageList1.Add(TheBitmap, nil) ;
aa:=listview1.Items.Add;
aa.Caption:=inttostr(i)+'.jpg';
aa.ImageIndex := ImageList1.Count - 1;
taxi 2009-04-28
  • 打赏
  • 举报
回复
aa.ImageIndex := ImageList1.Count - 1;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧