正如您在我的问题历史中所看到的,我正在开发一个电子书管理器,它将是开源的,我会在大约10天内发布它,但我有一个TRadioGroup,你可以看到:
TRadioGroup Used On My Form http://img85.imageshack.us/img85/1830/radiogroup.png
TRadioGroup Used On My Form http://img85.imageshack.us/img85/1830/radiogroup.png
我想将一些东西存储在一个变量(需要是一个整数)中,该变量将与这个TRadioGroup“链接”.
我需要做一个这样的if函数:
Caption Of The TRadioButton -> Number that will need to be stored in the variable
Fit 2xWidth – Default -> 0
Fit 2xHeight -> 1
Fit Width -> 2
Fit Height -> 3
但是我只使用了TRadioGroup和TRadioButton一次,不同于C#,我使用了20多次.然后我想知道我需要把什么放在if函数上,因为它会做什么我已经知道怎么做了:
var num: Integer; begin if(TRadioButton1 checked?) begin num := 0; end; end.
我需要把它放在if函数的括号内?
PS:我将把这些学分放在帮助我完成这个小项目的人的计划中.
解决方法
TRadioButton具有Checked属性.但是TRadioGroup具有ItemIndex属性.
TRadioGroup中的项目使用TStrings存储.因此,您可以将对象关联到每个选项,并且可以将整数转换为要存储的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条件执行不同的语句.