Delphi 如何将变量值转换为整数?

Delphi 如何将变量值转换为整数?,delphi,delphi-xe4,Delphi,Delphi Xe4,下面是我的代码: var i : integer; ... ... if not VarIsNull(TcxLookupComboBox(Sender).EditValue) then begin i := Integer(TcxLookupComboBox(Sender).EditValue); end; 我可以使用VarToStr将变量转换为字符串,但Delphi中没有VarToInt用于此。因此,我将其转换为整数(TcxLookupComboBox(Sender.Edit

下面是我的代码:

var
  i : integer;
  ...
  ...
if not VarIsNull(TcxLookupComboBox(Sender).EditValue) then
begin
  i := Integer(TcxLookupComboBox(Sender).EditValue);
end;
我可以使用
VarToStr
将变量转换为字符串,但Delphi中没有
VarToInt
用于此。因此,我将其转换为
整数(TcxLookupComboBox(Sender.EditValue)
。这是正确的方法吗?

看看这个:

具体检查变量类型转换部分

您应该能够直接使用隐式类型转换来分配。在Delphi中,只需为您处理它

例如:

var
  theVar: Variant;
  theInt: integer;
begin

  theVar := '123';
  theInt := theVar;
  showmessage(IntToStr(theint));
end;
这是毫无疑问的

要确保您的数据是一个整数,并且在运行时这样做是安全的(例如,为了利用变量中没有字符串值,这将导致运行时错误),请查看Val函数:

希望这有帮助。

这可能会有帮助:

function VarToInt(const AVariant: Variant): integer;
begin
  Result := StrToIntDef(Trim(VarToStr(AVariant)), 0);
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
  ShowMessage(IntToStr(VarToInt(NULL)));
  ShowMessage(IntToStr(VarToInt(' 124   ')));
  ShowMessage(IntToStr(VarToInt(13.87)));
  ShowMessage(IntToStr(VarToInt('Edijs')));
end;

结果是:0、124、0和0。您可以让它与floats tho一起工作。

只需将其分配为
i:=tcxlookupcombox(Sender).EditValue
。编译器将为您进行转换。在使用变体之前,您应该阅读它们。EditValue中的值是什么类型?+1无需向下投票imho。我猜
EditValue
是一个变体?(如果不是,使用变量转换为整数是没有意义的)。@jpfollenius,nkp大卫的问题是,如果
EditValue
包含
'abc'
,则无法将其转换为整数。但是,如果它包含
123
,则只需要中所示的简单赋值即可。应该使用TryStrToInt而不是Val