1
program MouseInput;
Uses WinCrt,WinMouse, Graph;
Var
   GraphicsDriver, GraphicsMode,
   ErrCode : smallint;
   x, y: shortstring;

Begin
x:=GetMouseX;
Y:=GetMouseY;

     Writeln('Initialising Graphics, please wait...');
     GraphicsDriver := Detect;
     InitGraph(GraphicsDriver, GraphicsMode,'');
     GetmouseX();
     GetmouseY();
     OuttextXY(0,0,x);
     readln();
end.

それは私にエラーを与えます: 23 / 20 mouse.pas Error: Incompatible types: got "WORD" expected "SHORTSTRING" しかし、私はそれを変更する方法がわからないので、GetmouseX が Word である必要があるので動作します。

4

2 に答える 2

1

X,Y を word に戻し、outtextxy 行を次のように変更します。

      OuttextXY(0,0,inttostr(x));

「sysutils」が uses 句にあることを確認してください

于 2012-11-19T12:53:06.210 に答える
0

GetMouseX および GetMouseY 関数は結果を返さず、呼び出した場所で結果が読み取られません。自分自身を呼び出すため、スタック オーバーフロー エラーが発生すると思います (または、これはコンパイラ エラーです)。

paulsm のコメント (Turbo Pascal 関数を思い出せません) を見たところ、コードは次のようになるはずです。

 InitGraph(GraphicsDriver, GraphicsMode,'');
 x := GetmouseX();
 y := GetmouseY();
 OuttextXY(0,0,x);

あなたのリンクから:

InitGraph(GraphicsDriver, GraphicsMode,'');
InitMouse;
x := GetmouseX;
y := GetmouseY;
于 2012-11-18T22:01:09.893 に答える