【发布时间】:2019-01-16 08:58:59
【问题描述】:
我正在使用包含大量控件的主窗体开发 Firemonkey 应用程序。我想创建更多控件并使用SendToBack 将它们发送回去。由于某种原因,这不能按预期工作。控制没有被发送到边后卫,他们停止了 1 个控制。
这是一个示例设置:
- 创建一个新的 TForm。
- 在其上放置 3 个按钮,彼此重叠(Button1、Button2、Button3)。
- 在运行时,调用
Button3.SendToBack- 按钮返回,但仅返回 1 个位置。 Button1 仍然是最后面。
检查 TForm 源代码发现SendToBack 调用SendChildToBack,它确定最后位置为:
function TCommonCustomForm.GetBackIndex: Integer;
begin
Result := 1;
end;
不应该是0吗?
问题:
- 为什么 SendToBack 将控件发送到“最后一个”位置而不是最后一个位置? GetBackIndex 返回 1 是否有特殊原因?
- 如何将控件发送到后面?鉴于我的表单有很多控件,并且使用
BringToFront将除需要控件之外的所有内容发送到前面是不可取的。
【问题讨论】:
标签: forms delphi firemonkey z-order