Delphi: "Incompatible types Integer and Extended"
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.
使用 Trunc
or Round
功能,具体取决于您想要的行为,例如...
lblAusgabe.left := Trunc(0.5 * ClientWidth) - 60;
或
lblAusgabe.left := Round(0.5 * ClientWidth) - 60;
这将删除小数点后的所有内容,结果只留下 Integer
类型。
作为替代方案,您也可以使用 div
来完成此操作,这更直接一些,并且会为您进行此转换...
lblAusgabe.left := (ClientWidth div 2) - 60;
一个整数只能包含整数(我假设 lblAusgabe.left 是一个整数)。您尝试分配给它的值有一个小数点。在 Pascal 中,小数点数可以存储为实数、双精度或扩展值。要将带分数的数字转换为整数,您可以使用 round() 函数对其进行四舍五入,或者您可以使用 trunc() 函数舍弃小数点后的部分。
另一种解决方案是使用整数计算您需要的值。例如:
cmdFakultat.left := ClientWidth div 2-60;
Div 除以一个整数并返回一个整数值,舍弃小数点后的任何内容。
我目前面临的问题是无法将我的 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.
使用 Trunc
or Round
功能,具体取决于您想要的行为,例如...
lblAusgabe.left := Trunc(0.5 * ClientWidth) - 60;
或
lblAusgabe.left := Round(0.5 * ClientWidth) - 60;
这将删除小数点后的所有内容,结果只留下 Integer
类型。
作为替代方案,您也可以使用 div
来完成此操作,这更直接一些,并且会为您进行此转换...
lblAusgabe.left := (ClientWidth div 2) - 60;
一个整数只能包含整数(我假设 lblAusgabe.left 是一个整数)。您尝试分配给它的值有一个小数点。在 Pascal 中,小数点数可以存储为实数、双精度或扩展值。要将带分数的数字转换为整数,您可以使用 round() 函数对其进行四舍五入,或者您可以使用 trunc() 函数舍弃小数点后的部分。
另一种解决方案是使用整数计算您需要的值。例如:
cmdFakultat.left := ClientWidth div 2-60;
Div 除以一个整数并返回一个整数值,舍弃小数点后的任何内容。