正如您在问题记录中所看到的,我正在开发一个电子书管理器,它将是开源的,我将在大约10天内发布它,但是我有一个TRadioGroup
,如您所见:
TRadioGroup Used On My Form http://img85.imageshack.us/img85/1830/radiogroup.png
而且我想将某些内容存储在将与此Integer
“链接”的变量(需要是TRadioGroup
)中。
我需要像这样做一个if
函数:
但是我只使用了一次TRadioGroup
和TRadioButton
,这与我已经使用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条件执行其他语句。