【发布时间】:2014-06-20 04:31:21
【问题描述】:
我的一个表单上有一个 TPanel 组件。这个面板有很多子组件,例如 TLabel、TImage、TLine、TPanel 等。这个面板用于在计时器上更新。 我想随时截取此面板的屏幕截图。 当我只使用 TPanel.MakeScreenshot 时,它只显示像 TImage 和 TLine 这样的孩子。缺少 TLabel。
有没有人知道如何实现它。
我正在使用 Delphi XE5 和 firemonkey。
谢谢。
【问题讨论】:
-
刚刚用 XE5/XE6 进行了小测试,它捕获 TLabel 没有任何问题。您应该提供有关您的项目/表单的更多详细信息。如果无法复现,那我估计也帮不了你了。
-
在我的例子中,TPanel 是一种动态的孩子。 TPanel 的子节点由后台线程不断更新。
-
将重现问题所需的所有信息放入描述中。尝试仅使用您提供的描述在新项目中使用所有默认设置复制它。
-
TLabels 是否有可能是在代码中创建的,而不是在 IDE 中的表单上创建的?如果是这样,您可能没有正确地养育他们。它们可能会出现在屏幕上,但不会连接到 TPanel。我会将标签放在 IDE 中的表单上,然后在表单的 OnCreate 中将它们设置为空字符串或初始值所需的任何值。如果您使用多线程来更新它们,那么您可以通过某种关键部分直接访问它们,或者将消息发送到它可以用来自行更新它们的表单。就个人而言,我会选择后者。
标签: delphi firemonkey delphi-xe5 firemonkey-fm2