Delphi: TImage:等待图像显示

3

我的程序中有一个表单组件。

程序必须测试:

是否在屏幕上显示加载的图像。这个图像的大小有时可能超过2兆字节。

要测试图像是否已加载:

if Not (Image1.Picture.Graphic.Empty) then

但是当涉及到大的图片时,需要几秒钟才能显示出来。
我想要等待图像显示后再对该图像进行处理。
请问如何等待图像在屏幕上显示呢?
非常感谢。

你的问题是什么,你的程序没有等待图像加载就继续了吗?你是否以某种方式异步加载图像?"mo"是什么意思,兆字节? - Sertac Akyuz
也许你需要对图像进行“重绘”。无论如何,我明白你的意思。图像加载需要1秒或1分钟都没关系,只有在加载完成后你的代码才会执行。 - Sertac Akyuz
@ John Easley:是的 - Amélie
控件同步工作。当调用LoadFromFile返回时,图像将在下一个绘制周期后可见。如果您希望使用Repaint,请使用OnIdle进行响应会更好。 - David Heffernan
我尝试使用Repaint进行测试,但那并没有给我想要的结果。 - Amélie
显示剩余6条评论
1个回答

7

您可以为TImage.OnProgress编写事件处理程序。

TProgressEvent = procedure (Sender: TObject; Stage: TProgressStage; PercentDone: Byte; RedrawNow: boolean; const R: TRect; const Msg: string) of object;

检查阶段是否为psEnding


非常感谢,这正是我所寻找的。 - Amélie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接