1

在 Delphi 2010 中,我将 2 个单选组放在一个表单上,然后向每个组添加 2 个按钮。所以总共有4个按钮。

问题是按钮的Checked属性表现得好像所有 4 个按钮都在同一个单选组中。即,在任何时候都只能检查 4 个按钮中的 1 个。在设计和运行时都是如此。

  object RadioGroup1: TRadioGroup
    Left = 14
    Top = 314
    Width = 177
    Height = 35
    Caption = 'Series 2 Axis'
    TabOrder = 14
  end
  object RButtonLeftAxis: TRadioButton
    Left = 91
    Top = 326
    Width = 41
    Height = 17
    Caption = 'Left'
    TabOrder = 12
    OnClick = RButtonLeftAxisClick
  end
  object RButtonRightAxis: TRadioButton
    Left = 138
    Top = 326
    Width = 45
    Height = 17
    Caption = 'Right'
    Checked = True
    TabOrder = 13
    TabStop = True
    OnClick = RButtonRightAxisClick
  end

等等等等更多的对象

  object RadioGroup2: TRadioGroup
    Left = 8
    Top = 146
    Width = 113
    Height = 69
    Caption = 'Output Type'
    TabOrder = 33
  end
  object RadBtnkWh: TRadioButton
    Left = 20
    Top = 165
    Width = 65
    Height = 17
    Caption = 'kWh'
    TabOrder = 34
    OnClick = RadBtnkWhClick
  end
  object RadBtnLossFact: TRadioButton
    Left = 20
    Top = 188
    Width = 81
    Height = 17
    Caption = 'Loss Factors'
    TabOrder = 35
    OnClick = RadBtnLossFactClick
  end

如何取消这两个组的链接?

4

3 回答 3

7

您似乎已手动将单选按钮添加到 TRAdioGroup。不要那样做。只需单击单选组的属性项并在其中写入字符串(各种单选按钮的名称)。你准备好一个广播组!

在此处输入图像描述

于 2012-06-19T09:50:07.190 回答
3

你在某个地方被越过了

Items您可以通过设置属性将按钮添加到单选组。

您有两个 TRadioGroups 和四个单选按钮,它们都有相同的父级,因此它们在一个组中。

所以摆脱按钮并正确使用无线电组。

或者摆脱无线电组并将它们放入另一个容器中。

于 2012-06-19T09:31:20.693 回答
2

您的TRadioButton控件就像它们在一个组中一样,因为它们一个组中,因为它们具有相同的Parent- 这是TRadioGroup.Parent,而不是TRadioGroup控件本身。您实际上根本没有将按钮放在组中。您展示的 DFM 证明了这一点。您所做的只是将按钮放在组的顶部而不是内。

TRadioGroup.ControlStyle属性没有csAcceptsControls启用标志,因此您不能在设计时将TRadioButton控件拖放到 a上。TRadioGroup这就是为什么TRadioGroup不是成为按钮的Parent,而是TRadioGroup.Parent成为按钮的Parent。要将按钮放在INSIDETRadioGroup,您需要改用该TRadioGroup.Items属性。但是,这并不能让您对按钮的位置进行任何控制。如果需要,您必须使用另一个容器,例如TPanelor TGroupBox,您可以将TRadioButton控件拖放到该容器上。

于 2012-06-19T18:15:21.510 回答