0

Scar Divi Float 或 Double 到 Int。我如何将浮点数/双精度数传递给整数?

这是代码。我正在尝试查找位图并单击中心,问题是当我尝试划分 x 或 y 以找到 img 中心时。

program FindBitmap;

label
main;

var
Bmp: TSCARBitmap;
x, y: Integer;
temp1, temp2: String;

begin
 ClearDebug;
 Bmp := TSCARBitmap.Create('deNqtzGkKglAUhuE2Ea2pwXm8atpAFCIVRdEKi' +
    'qJCkBBpAeVQa+zCBRGH++cEz6/Dd95Oq92ajoZwE8eCG9sm3GhowDkWgrNNHc4' +
    'yNDgTqbnz6fjNMrr49XIXs+IXZuhK0fVyphSS99tz56UXDGlyEb7491ttIY3jp' +
    'eeW9oSuSCVIlQPfLxWyJFkvveqY0GSxCnceQZAXPmm6Xa9ql4QqCbVwJwpDEtl' +
    'vN00zQhb5JkhTnlF02O8oG0ISOApFEugDQuRZOIFj4Hh2AMcxfTh20PuDfhfuB' +
    '32bFT0=');
main:        
if FindBitmap (x, y, Bmp, 0, 0, 2559, 1023) then
begin
WriteLn('IMG FOUND!');    
ClickMouse((x + Bmp.Width / 2),(y + Bmp.Height / 2),mbLeft);
end
else
begin
goto main
end;

end.

ClickMouse 不起作用,Scar Divi 说:类型不匹配

4

2 回答 2

0

好吧,坦克给大家。Sertac Akyuz有解决方案:将 div 的 / 更改为返回整数。

ClickMouse((x + Bmp.Width div 2),(y + Bmp.Height div 2),mbLeft);

问题是我不能有十进制坐标。

于 2013-01-30T16:07:57.633 回答
0

要转换数据类型,您“转换”它(而不是“通过”)。请参阅此链接

ClickMouse(Integer(x + Bmp.Width / 2),Integer(y + Bmp.Height / 2),mbLeft);

当我查看ClickMouse 的定义时,它不仅需要 a Integer,它的const Integer所有参数都需要 a :

 procedure ClickMouse(const X, Y: Integer; const Btn: TMouseButton);

根据定义, aconst必须在编译时可评估。如果我理解正确,那么您所采取的方法将无法正常工作......

于 2013-01-27T20:16:28.573 回答