控制变得不可见 - 如何修复WEIRD GUI行为 - Delphi xe6

时间:2014-05-20 20:55:34

标签: ios delphi firemonkey delphi-xe6

正如标题所述,我正在使用DELPHI XE6为IOS遇到一些奇怪的GUI内容。 在我的登录框中 - 我有一个TRectangle,每边都有两个TRoundRects。我想这是我创建一个具有圆形边缘而不是完全正方形的按钮/容器的懒惰方式。如果你看下面的图片:

enter image description here

您可以看到每个RoundRect的大纲。填充是支持白色的,最初是。每当我打开一个表单 - 然后关闭该表单以回到这个表单时 - RoundRects.Fill都转到':= null'。 如果你能看到,我有另一个TRectangle + RoundRects用于另一个坐在它上面的容器。 (两个矩形都具有相同的父级,即Tlayout)。蓝色容器的圆形反转不会为空。 由于两个容器之间的行为不一致,因此不确定从何处开始调试。 任何有关如何解决此问题的指导或指导将非常感谢!

另外,KEY NOTE我想:每当roundRects变为null时,如果把焦点放在任何控件(TEdit,按钮等)上,那么roundRects会自行纠正并返回白色。

1 个答案:

答案 0 :(得分:3)

你确定它们被设置为null(你检查了值吗?)或效果是否无法渲染?

如果您确定该值已更改为null,则实际上调试非常简单:

  • 运行程序并在已知良好的位置设置断点(值应该是该值)
  • 使用ALT-F5评估填充的值。它应该在内存中显示地址。复制此地址。
  • 在调试器的“断点”面板中,单击“添加断点”按钮上的下拉箭头,然后添加“数据断点”
  • 将地址设置为您从Alt-F5评估者复制的地址。
  • 现在你有一个断点,当这个值在内存中而不是在特定的代码行中发生变化时会断开。这将引导您查看需要查看的代码,无论是在它打破还是从中调用堆栈的位置。