0

ScarDiviFloatまたはDoubletoInt。Float / DoubleをIntegerに渡すにはどうすればよいですか?

これがコードです。ビットマップを見つけて中央をクリックしようとしています。問題は、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が機能しない、ScarDiviは言う:タイプの不一致

4

2 に答える 2

0

データ型を変換するには、データ型を「キャスト」します(「パス」ではありません)。このリンクを参照してください。

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

ClickMouseの定義を見ると、だけでなく、Integerすべてconst Integerのパラメーターにが必要です。

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

定義上、aconstはコンパイル時に評価可能である必要があります。私がそれを正しく理解していれば、あなたが取っているアプローチはうまくいきません...

于 2013-01-27T20:16:28.573 に答える
0

わかりました、すべての人に戦車。Sertac Akyuzには解決策がありました。整数を返すように、divの/を変更します。

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

問題は、10進座標を持てないことでした。

于 2013-01-30T16:07:57.633 に答える