我有一个用 Delphi 10.1柏林编译的FMX Android项目。用户需要从19个值中进行选择来运行它,我使用TPopupBox组件来显示19个TRadiobutton,它们显示在3列7+7+5个按钮中。
默认设置是透明的弹出窗口,这是无用的,所以我编辑了样式,在弹出窗口的背景上添加了一个白色的TRectangle,但只有当我调整矩形的大小以匹配弹出窗口的大小时,它才起作用。将矩形与客户端或内容对齐只会将第一行单选按钮设置为不透明的背景。我有两个问题:
1.如何自动调整矩形的大小,而不是在设计时固定它,以匹配我计算的将为popup.bounds设置的大小?
1.向样式背景添加TRectangle是获得不透明控件的最佳方法吗?
我已经尝试了所有明显的对齐选项并搜索了互联网。有人建议从样式列表中删除“背景”,但没有工作。有人建议编辑清单,但我的清单只是在我编译时被覆盖。
1条答案
按热度按时间daupos2t1#
我相信你写错了
TPopupBox
,可能是想写TPopup
。无论如何,这是你应该用的弹出窗口。您可能需要创建一个新项目,用于测试目的。在左上角附近添加一个按钮。这将显示和隐藏弹出窗口。
添加一个
TPopup
并根据需要调整大小,然后设置Visible := True
。在弹出窗口内添加一个矩形,并将其
Align
属性设置为Contents
。根据需要设置其Fill.Color
属性。根据需要在矩形上添加TRadiobuttons
。最后,切换弹出窗口可见性的代码(但请参见“帮助”中的注解):
请注意!有许多属性会共同影响
TPopup
的位置:Placement
、PlacementRectangle
、PlacementTarget
。由于我不知道您的需求,所以我让您来决定使用什么。示例测试用例:
这里,
PlacementTarget
是Button1
,而Placement
是Bottom
。