1

我有 3 个单选组,它们显示在单个表单应用程序的不同选项卡上,但它们基本上都具有相同的基础功能(一次只能对用户可见一个)。

也就是说,如果用户选择其中任何一个的新单选按钮,我想以编程方式更新ItemIndex其他两个单选按钮,以匹配。

但是,我不想执行该OnClick()功能三次。

有没有一种简单的方法可以做到这一点,或者我应该只使用一个单选组并不断更改它ParentTop并且Left随着用户更改可见选项卡?

该应用程序目前没有菜单,因此仅为此添加一个似乎很难看。

4

2 回答 2

3

创建 3 个无线电组,但只有一个事件处理程序并将其分配给所有无线电组:

procedure TForm1.RadioGroupClick(Sender: TObject);

var Index : Integer;

begin
 RadioGroup1.OnClick := nil;
 RadioGroup2.OnClick := nil;
 RadioGroup3.OnClick := nil;
 Index := TRadioGroup(Sender).ItemIndex;
 RadioGroup1.ItemIndex := Index;
 RadioGroup2.ItemIndex := Index;
 RadioGroup3.ItemIndex := Index;
 RadioGroup1.OnClick := RadioGroupClick;
 RadioGroup2.OnClick := RadioGroupClick;
 RadioGroup3.OnClick := RadioGroupClick;
end;
于 2012-12-03T06:52:47.523 回答
2

您可以使用内存中的 TDataset 和许多 TDBRadioGroup 小部件

于 2012-12-03T07:21:15.267 回答