如何确定已使用 SendToBack 或 BringToFront 方法的 Firemonkey 组件的“z-index”?

问题描述 投票:0回答:1

我已经测试了将组件放在标准 FMX 表单(TForm)上并将该表单视为文本。 IDE 似乎会自动将组件按照正确的渲染顺序放置,以使组件的顺序正确。如果我动态创建组件并重新排序它们(TRectangle、TEllipse),我想知道如何确定它们的“z-index”以渲染它们或再次从磁盘重新创建它们。我看过类似 ComponentIndex 之类的东西,但是当我将 SendToBack 和 BringToFront 应用于组件时,这不会改变。

delphi firemonkey rad-studio
1个回答
0
投票

经过一番摆弄和检查结果后,我设法确定 TComponent 有一个 Index 属性(似乎没有记录在帮助文件中)。我可以用它来确定动态创建的组件的“z-index”。 我正在使用最新版本的 RAD Studio。

AComponent := TEllipse.Create(Self);
AComponent.Parent := Self;
AComponent.Position.X := 0;
AComponent.Position.Y := 0;
AComponent.Width := 100;
AComponent.Height := 100;

AComponent.Index := 5; //This is the magic bit 

创建组件后,只需存储和设置 Index 属性即可动态恢复它们在表单或布局上的正确顺序。

© www.soinside.com 2019 - 2024. All rights reserved.