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 错误:不兼容的类型:得到“WORD”预期“SHORTSTRING”但我不知道如何更改它,因此它可以工作,因为 GetmouseX 需要是 Word。

4

2 回答 2

1

将 X,Y 改回 word 并将 outtextxy 行更改为

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

确保“sysutils”在您的使用条款中

于 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 回答