Firemonkey ScrollBox Bug

jpf*_*ius 39 delphi delphi-xe2 firemonkey

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

再生产:

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

如果发生错误,则该按钮不可见.

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

有谁知道是什么原因引起的?或者任何想法我们如何更详细地识别问题?

Pet*_*ter 2

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

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

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

for i := 1 to x do
  MyScrollComponent.AddObject(MyObject[i]);
MyScrollComponent.UpdateStyle;
Run Code Online (Sandbox Code Playgroud)

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