Firemonkey ScrollBox 错误
Posted
技术标签:
【中文标题】Firemonkey ScrollBox 错误【英文标题】:Firemonkey ScrollBox Bug 【发布时间】:2011-11-21 02:55:20 【问题描述】:我们在 Firemonkey 的 ScrollBox 组件中遇到了一个奇怪的错误(因为 TGrid
继承自 TScrollBox
它也会影响所有网格)。在我们的一些开发机器上,一切正常,而在其他机器上出现错误。我们未能检测到系统之间的任何模式(我们检查了操作系统、图形硬件、DirectX 版本)。
复制:
-
创建一个新的 FireMonkey 应用程序。在表单上放置
TScrollBox
。
向滚动框添加一个按钮,并将其垂直位置设置为 500000。
启动应用程序并检查滚动到滚动框末尾时是否显示按钮。
如果出现错误,按钮是不可见的。
使用网格时,这会导致 1-19047 行正确显示,而 19047 及以上的所有行都不会显示。
有人知道是什么原因造成的吗?或者知道如何更详细地识别问题?
【问题讨论】:
顺便说一句...第 19047 行未在 TGrid 组件中正确显示。它只是部分可见。 在某些系统中,当我尝试使用滚动条时,我得到一个无效的浮点运算异常。 它在我的 32 位 windows xp 上运行良好 它在 xp 64bit 和 Mac OS X 上也能正常工作。这似乎是 vista 和 win 7 的问题。目前只有一个(win7)系统可以正常工作 - 但即使在具有相同显卡的第二个系统上,相同的直接 x 设置也无法正常工作。这真的很奇怪。 您是否将此作为错误提交给 QC?如果是这样,你能给我它的 QC 号码吗? 【参考方案1】:在遇到各种滚动问题后,我得出的结论是,firemonkey 中的滚动组件存在初始化问题,这体现在狡猾的滚动行为中。有时它会起作用,有时它不会......
在考虑了我多次修复问题后,只是为了看到问题在后续编译(或不同的操作系统)中再次出现,在添加所有子组件后,我在调用组件的 UpdateStyle 方法方面取得了很大成功。 IE。自从添加呼叫后,问题就没有再次出现......
例如以下伪代码填充滚动组件,然后调用 UpdateStyle,这似乎强制组件“修复”各种属性的无效设置 - 最小值、最大值等。
for i := 1 to x do
MyScrollComponent.AddObject(MyObject[i]);
MyScrollComponent.UpdateStyle;
希望这对你也有用...
【讨论】:
以上是关于Firemonkey ScrollBox 错误的主要内容,如果未能解决你的问题,请参考以下文章
虚幻引擎UE4如何制作可拖动(Drag and Drop)的背包(Scrollbox)