Firemonkey ScrollBox Bug

时间:2011-09-20 13:46:31

标签: delphi delphi-xe2 firemonkey

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

繁殖:

  1. 创建一个新的FireMonkey应用程序。在表单上放置TScrollBox
  2. 向scrollBox添加一个按钮,并将其垂直位置设置为500000。
  3. 启动应用程序并检查滚动到滚动条末尾时是否显示按钮。
  4. 如果发生错误,该按钮不可见。

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

    有谁知道可能导致这种情况的原因是什么?或者任何想法我们如何更详细地识别问题?

1 个答案:

答案 0 :(得分:2)

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

在认为我多次修复问题后,只是为了观察问题在后续编译(或不同的操作系统)上重新出现,我在添加所有子组件后调用组件的UpdateStyle方法取得了很大成功。即自添加呼叫后问题没有重新出现......

E.g。以下伪代码填充滚动组件然后调用UpdateStyle,这似乎迫使组件“修复”各种属性的无效设置 - Min,Max等。

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

希望这也适合你......