如何测试 TImage 是不是分配有图形?
Posted
技术标签:
【中文标题】如何测试 TImage 是不是分配有图形?【英文标题】:How to test if a TImage has a graphic assigned to it?如何测试 TImage 是否分配有图形? 【发布时间】:2011-02-12 15:55:57 【问题描述】:在我的程序中,表单上有一个 TImage 组件。
在某些情况下,程序必须测试:
如果“有一个图像分配给 TImage 组件的图片属性”那么 ...
我该怎么做?
【问题讨论】:
【参考方案1】:if Image1.Picture.Graphic = NIL
then ShowMessage("There is no image.")
else ShowMessage("Image found.");
如果使用位图,您也可以这样做:
if Image.Picture.Bitmap.Empty then ShowMessage("There is no spoon");
【讨论】:
if NOT Image.Picture.Empty then DoStuff
,因为 OP 要求仅在有图片时运行 DoStuff
。
@FabricioAraujo - 我只是假设 OP 知道如何调整代码(使用否定)以适应其需要:)【参考方案2】:
迟到总比不到好! 正确的做法是:
if Assigned(Image1.Picture.Graphic) then ...
【讨论】:
【参考方案3】:你没有说,但我假设你在谈论 Delphi。
可以通过测试检查TImage控件中是否有位图:
if Image.Picture.Bitmap.Width > 0 then
// do whatever
【讨论】:
我认为测试对象本身的存在比测试该对象的属性之一要好。以上是关于如何测试 TImage 是不是分配有图形?的主要内容,如果未能解决你的问题,请参考以下文章
Delphi 自定义 TImage 组件 - 组件中的 MouseEnter、MouseLeave