当然,这段代码不会编译.首先,我需要将一个TObject值转换为Integer.然后,将其作为字符串读取.我应该使用什么功能?
for i := 1 to 9 do begin
cmbLanguage.Items.AddObject(Format('Item %d', [i]), TObject(i));
end;
cmbLanguage.ItemIndex := 2;
ShowMessage(cmbLanguage.Items.Objects[cmbLanguage.ItemIndex]);
Run Code Online (Sandbox Code Playgroud)
或者也许首先可以使用String而不是Integer?
Blo*_*ard 10
cmbLanguage.Items.AddObject(Format('Item %d', [i]), TObject(i));
Run Code Online (Sandbox Code Playgroud)
在这里,您要添加一个带有"对象"的项目,该对象实际上是一个i转换为a 的整数()TObject.
由于实际上是在对象字段中存储int,因此可以将其强制转换回Integer,然后将其转换为字符串:
ShowMessage(IntToStr(Integer(cmbLanguage.Items.Objects[cmbLanguage.ItemIndex])));
Run Code Online (Sandbox Code Playgroud)
请注意,你并没有在这里转换任何东西,你只是假装你的整数是一个TObject,所以编译器不会抱怨.