判断Timage中是否有图像的方法

网上说可以这样对一个Timage控件进行判断这个控件中是否有图像。

1.如果Timage中放的是bmp图像:

if  img1.Picture.Bitmap.Empty = true then 

  showmessage('没有图像');

2.如果Timage中放的是jpg图像

if img1.Picture.Graphic.Empty = true then

  showmessage('没有图像');

但事实是,如果你用第二条语句对JPG进判断时,会出现非法访问内存的情况,原因是什么呢?原因可能是因为Graphic是nil,所以在Graphic.Empty中出现非法访问。那怎么办呢?改为下面的语句:

if img1.Picture.Graphic = nil then

  showmessage('没有图像');

改成这样后,如果使用img1.Picture.Assign对Timage加入图像后,img1.Picture.Graphic也不为空了,如果用img1.Picture.Assign(nil)对Timage进行清空后,img1.Picture.Graphic也成为空了,所以img1.Picture.Graphic = nil 很好用。如果想用img1.Picture.Bitmap = nil来进行判断是不行的,因为无论是刚创建完还是使用img1.Picture.Assign(nil),Timage.Picture.Bitmap都不为空,所以对于Bitmap还是要用img1.Picture.BitMap.Empty = ture来判断。代码片段可以看这个网址:http://www.efg2.com/Lab/Library/UseNet/2000/1128.txt

另外,想判断Timage中的图像是bmp还是jpg,可以用下面的两行语句

img1.Picture.Graphic is TBitmap  //bmp

img1.Picture.Graphic is TJPEGImage //jpg

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值