【问题标题】:Delphi : Timage: Wait for an image to be displayedDelphi:Timage:等待显示图像
【发布时间】:2018-02-16 19:04:14
【问题描述】:

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

程序必须测试:

如果加载的图像显示在屏幕上。此图像的大小有时可以轻松超过 2 个月。

测试图片是否加载:

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

... 但是当图片很大时,它需要几秒钟才能出现。

我想等待图像的显示,然后对该图像进行处理。

请问如何等待图片显示在屏幕上?

提前谢谢你

【问题讨论】:

  • 你的问题是什么,你的程序不等待图像加载并继续吗?您是否以某种方式异步加载图像?什么是“mo”,兆字节?
  • 我的程序不会等待图像加载并在此图像上进行处理。如果图像的大小为 40 méga octets,则它需要几秒钟才能出现在 acran 上。但这不是我的问题。我的问题是:我怎么知道这个图像是否已经显示在 acran 上?加载图像:if Form1.OpenDialog1.Execute then begin Image1.Picture.LoadFromFile (OpenDialog1.FileName); end; "mo" = méga octets
  • 我会假设在 LoadFromFile 执行之后的行时,应该已经加载了图像。通过在“LoadFromFile”之后的行上放置一个断点来验证。
  • 感谢您的及时回复。我想你没有理解我。我给你举个例子: 1-一个 5 MB 的图像可能需要 1 秒才能显示在屏幕上。 2-一张 40 MB 的图片可能需要 5 秒才能显示在屏幕上。所以每个图像的显示时间是不规则的。是否有一个技巧可以知道图像是否显示在屏幕上,也就是说用户在其屏幕上看到了图像。
  • @Amélie 当图像显示时用户会看到,不是吗?

标签: delphi


【解决方案1】:

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

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

检查阶段 = psEnding

【讨论】:

  • 非常感谢。这就是我要找的。​​span>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
  • 2017-03-18
  • 1970-01-01
相关资源
最近更新 更多