如何在TObject属性中存储Integer,然后向用户显示该值?

Mik*_*ail 5 delphi delphi-7

当然,这段代码不会编译.首先,我需要将一个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,所以编译器不会抱怨.