delphi 设置FMX弹出窗口的背景

vptzau2j  于 2022-11-29  发布在  其他
关注(0)|答案(1)|浏览(303)

我有一个用 Delphi 10.1柏林编译的FMX Android项目。用户需要从19个值中进行选择来运行它,我使用TPopupBox组件来显示19个TRadiobutton,它们显示在3列7+7+5个按钮中。
默认设置是透明的弹出窗口,这是无用的,所以我编辑了样式,在弹出窗口的背景上添加了一个白色的TRectangle,但只有当我调整矩形的大小以匹配弹出窗口的大小时,它才起作用。将矩形与客户端或内容对齐只会将第一行单选按钮设置为不透明的背景。我有两个问题:
1.如何自动调整矩形的大小,而不是在设计时固定它,以匹配我计算的将为popup.bounds设置的大小?
1.向样式背景添加TRectangle是获得不透明控件的最佳方法吗?
我已经尝试了所有明显的对齐选项并搜索了互联网。有人建议从样式列表中删除“背景”,但没有工作。有人建议编辑清单,但我的清单只是在我编译时被覆盖。

daupos2t

daupos2t1#

我相信你写错了TPopupBox,可能是想写TPopup。无论如何,这是你应该用的弹出窗口。
您可能需要创建一个新项目,用于测试目的。在左上角附近添加一个按钮。这将显示和隐藏弹出窗口。
添加一个TPopup并根据需要调整大小,然后设置Visible := True
在弹出窗口内添加一个矩形,并将其Align属性设置为Contents。根据需要设置其Fill.Color属性。根据需要在矩形上添加TRadiobuttons
最后,切换弹出窗口可见性的代码(但请参见“帮助”中的注解):

Popup1.IsOpen := not Popup1.IsOpen;

请注意!有许多属性会共同影响TPopup的位置:PlacementPlacementRectanglePlacementTarget。由于我不知道您的需求,所以我让您来决定使用什么。
示例测试用例:

这里,PlacementTargetButton1,而PlacementBottom

相关问题