正如您在问题记录中所看到的,我正在开发一个电子书管理器,它将是开源的,我将在大约10天内发布它,但是我有一个TRadioGroup,如您所见:
TRadioGroup Used On My Form http://img85.imageshack.us/img85/1830/radiogroup.png
而且我想将某些内容存储在将与此Integer“链接”的变量(需要是TRadioGroup)中。
我需要像这样做一个if函数:

但是我只使用了一次TRadioGroupTRadioButton,这与我已经使用20多次的C#不同。然后我想知道我需要在if函数上放什么,因为它将要做什么我已经知道该怎么做:

var
  num: Integer;

begin
  if(TRadioButton1 checked?)
  begin
    num := 0;
  end;
end.
我需要在if函数的括号内放什么?
PS:我将为那些在这个小项目中对我有所帮助的人提供荣誉。

最佳答案

TRadioButton具有Checked属性。但是TRadioGroup具有ItemIndex属性。

TRadioGroup中的项目是使用TString存储的。因此,您可以将一个对象与每个选项相关联,并且可以将一个整数强制转换为要存储的TObject。

例子:

// fill the radiogroup
radiogroup.Items.AddObject('Fit 2xWidth', TObject(0));
radiogroup.Items.AddObject('Fit 2xHeight', TObject(1));
radiogroup.Items.AddObject('Fit Width', TObject(2));
radiogroup.Items.AddObject('Fit Height', TObject(3));
radiogroup.ItemIndex := 0;

要读取当前设置:
value := radiogroup.ItemIndex;

或获取关联的整数:
index := radiogroup.ItemIndex;
Assert(index>=0); // Sanity check
value := Integer(radiogroup.Items.Objects[index]);

在您的情况下,值是0到3,因此您可以使用ItemIndex。

注意,如果不是函数。函数是一段基于输入参数返回值的代码。 If是一条语句,这是可以执行的命令。 if语句很特殊,因为它使您可以基于if条件执行其他语句。

09-25 22:13