如何隐藏TRadioGroup中的一项?

8
有没有办法使TRadioGroup组件中的某个选项不可见?(Delphi 7) alt text

1
假设您的原因不是很明确,我猜想您想要删除某些选项,这些选项可能不存在或不适用。所以作为一般用户界面指南,我建议您只需禁用它即可。 - PA.
4个回答

17

我认为更语义化的做法是使用 Buttons[] 属性,所以

RadioGroup.Buttons[Index].Visible := False

从可用性角度考虑,禁用(Enabled := False)而不是隐藏更好。


4
RadioGroup1.Controls[...].Visible := False;

2
它将留下一个空白的位置,其中项目变为不可见 :) - Plastkort

0

TRadioGroup.Items属性中删除所需的字符串:

RadioGroup1.Items.Delete(IndexHere);

这会将其他项目上移一个位置(因此,如果您在其他地方使用索引,则需要进行调整)。 - Jeroen Wiert Pluimers
True,因为从Items属性中删除字符串将删除相应的TRadioButton并重新定位其余按钮。 - Remy Lebeau

0

如果你想保留单选按钮组中字符串/项(可见或不可见)的ItemIndex,你需要将它们存储在其他地方。因此,声明一个TStringList来单独保存所有单选按钮组项。然后,在单选按钮组选择后,在该字符串列表中查找索引。类似这样:

RadioGroup: TRadioGroup;
AllRadioItems: TStringList;
fill both... ect


RealIndex := AllRadioItems.IndexOf(RadioGroup.Items[RadioGroup.ItemIndex]);

有一点额外的开销,但简单易懂...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接