[英]Delphi: “Incompatible types Integer and Extended”
我目前面临无法将我的 ClientWidth 除以 2(或乘以 0.5,因为 Delphi 给我的错误消息)的问题:
[Error] Unit1.pas(59): Incompatible types: 'Integer' and 'Extended'
[Error] Unit1.pas(60): Incompatible types: 'Integer' and 'Extended'
[Error] Unit1.pas(61): Incompatible types: 'Integer' and 'Extended'
procedure TForm1.FormResize(Sender: TObject);
begin
// responsive design
with form1 do begin
cmdFakultat.left:=0.5*ClientWidth-60;
txtEingabe.left:=0.5*ClientWidth-60;
lblAusgabe.left:=0.5*ClientWidth-60;
end;
end;
end.
整数只能包含整数(我假设 lblAusgabe.left 是一个整数)。 您尝试分配给它的值有一个小数点。 小数点数字可以在 Pascal 中以实数、双精度或扩展值存储。 要将带分数的数字转换为整数,您可以使用 round() 函数对其进行四舍五入,也可以使用 trunc() 函数丢弃小数点后的部分。
另一种解决方案是用整数计算您需要的值。 例如:
cmdFakultat.left := ClientWidth div 2-60;
Div 除以整数并返回一个整数值,丢弃小数点后面的任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.