【问题标题】:Firemonkey ScrollBox BugFiremonkey ScrollBox 错误
【发布时间】:2011-11-21 02:55:20
【问题描述】:

我们在 Firemonkey 的 ScrollBox 组件中遇到了一个奇怪的错误(因为 TGrid 继承自 TScrollBox 它也会影响所有网格)。在我们的一些开发机器上,一切正常,而在其他机器上出现错误。我们未能检测到系统之间的任何模式(我们检查了操作系统、图形硬件、DirectX 版本)。

复制:

  1. 创建一个新的 FireMonkey 应用程序。在表单上放置 TScrollBox
  2. 向滚动框添加一个按钮,并将其垂直位置设置为 500000。
  3. 启动应用程序并检查滚动到滚动框末尾时是否显示按钮。

如果出现错误,按钮是不可见的。

使用网格时,这会导致 1-19047 行正确显示,而 19047 及以上的所有行都不会显示。

有人知道是什么原因造成的吗?或者知道如何更详细地识别问题?

【问题讨论】:

  • 顺便说一句... 19047 行未正确显示在 TGrid 组件中。它只是部分可见。
  • 在某些系统上,当我尝试使用滚动条时,我得到一个无效的浮点运算异常。
  • 它在我的 32 位 windows xp 上运行良好
  • 它在 xp 64bit 和 Mac OS X 上也能正常工作。这似乎是 vista 和 win 7 的问题。目前只有一个(win7)系统可以正常工作 - 但即使在具有相同显卡的第二个系统上,相同的直接 x 设置也无法正常工作。这真的很奇怪。
  • 您是否将此作为错误提交给 QC?如果是这样,你能给我它的 QC 号码吗?

标签: delphi delphi-xe2 firemonkey


【解决方案1】:

在遇到各种滚动问题后,我得出的结论是,firemonkey 中的滚动组件存在初始化问题,这体现在狡猾的滚动行为中。有时它会工作,有时它不会......

在考虑了我多次修复问题后,只是为了看到问题在随后的编译(或不同的操作系统)上再次出现,在添加所有子组件后,我在调用组件的 UpdateStyle 方法方面取得了很大成功。 IE。自从添加呼叫后,问题就没有再次出现......

例如以下伪代码填充滚动组件,然后调用 UpdateStyle,这似乎强制组件“修复”各种属性的无效设置 - 最小值、最大值等。

for i := 1 to x do
  MyScrollComponent.AddObject(MyObject[i]);
MyScrollComponent.UpdateStyle;

希望这对你也有用...

【讨论】:

    猜你喜欢
    • 2017-05-21
    • 2012-06-25
    • 2015-06-06
    • 2011-12-26
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多