我们在 Firemonkey 的 ScrollBox 组件中遇到了一个奇怪的错误(因为TGrid
继承自TScrollBox
它也会影响所有网格)。在我们的一些开发机器上,一切正常,而在其他机器上,就会出现错误。我们未能检测到系统之间的任何模式(我们检查了操作系统、图形硬件、DirectX 版本)。
再生产:
- 创建一个新的 FireMonkey 应用程序。放置一个
TScrollBox
表格上。
- 向scrollBox添加一个按钮并将其垂直位置设置为500000。
- 启动应用程序并检查当滚动到滚动框末尾时是否显示该按钮。
如果出现错误,该按钮将不可见。
使用网格时,这会导致 1-19047 行正确显示,而 19047 及以上的所有行都不会显示。
有谁知道这可能是什么原因造成的吗?或者知道如何更详细地识别问题?
在遇到各种滚动问题之后,我得出的结论是,firemonkey 中的滚动组件存在初始化问题,这表现为狡猾的滚动行为。有时它会起作用,有时则不起作用......
在考虑多次修复问题后,只是为了在后续编译(或不同的操作系统)上看到问题再次出现,在添加所有子组件后,我在调用组件的 UpdateStyle 方法方面取得了很大成功。 IE。自从添加呼叫后,问题没有再次出现......
例如。以下伪代码填充滚动组件,然后调用 UpdateStyle,这似乎强制组件“修复”各种属性的无效设置 - 最小值、最大值等。
for i := 1 to x do
MyScrollComponent.AddObject(MyObject[i]);
MyScrollComponent.UpdateStyle;
希望这也适合你......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)