Graph 使用图形窗口时的FreePascal鼠标输入?

Graph 使用图形窗口时的FreePascal鼠标输入?,graph,mouse,freepascal,Graph,Mouse,Freepascal,使用图形窗口时GetMouseX不工作 uses wincert,graph,winmouse; var x,y:integer; Begin x:=GetMouseX; End. 这给了我一个错误:找不到标识符GetMouseX。 使用“鼠标”在控制台窗口中尝试此操作,但在图形窗口中不起作用 有人能帮忙吗?是的,winmouse不是鼠标的一个版本/子集,就像wincrt是用于windows图形的crt的一个子集一样 它只是一个让鼠标处理图形的单元。查看该单元以查看可用的函数lpressed、

使用图形窗口时GetMouseX不工作

uses wincert,graph,winmouse;
var x,y:integer;
Begin
x:=GetMouseX;
End.
这给了我一个错误:找不到标识符GetMouseX。 使用“鼠标”在控制台窗口中尝试此操作,但在图形窗口中不起作用


有人能帮忙吗?

是的,winmouse不是鼠标的一个版本/子集,就像wincrt是用于windows图形的crt的一个子集一样


它只是一个让鼠标处理图形的单元。查看该单元以查看可用的函数lpressed、rpressed、getlastbutonpress等

经过长时间搜索,我找到了winmouse的函数列表。页面在。。。波兰语之类的,但是示例代码非常有用

uses graph, wincrt, winmouse;
var gd,gm: integer;
    ch:char;
    i:integer;
    mposx, mposy, state: longint;
begin
 gd := d4bit;
 gm := m640x480;
 initgraph(gd,gm,'');
 initmouse;
 randomize;
 for i:=1 to 10 do
   circle(random(640),random(480),150);
 repeat
   if keypressed then ch:= readkey;
   if lpressed then
     begin
     repeat until not lpressed;
     getmousestate(mposx,mposy,state);
     if getpixel(mposx,mposy)<15 then
       begin
       setfillstyle(solidfill,random(14)+1);
       floodfill(mposx,mposy,15);
       end;
     end;
 until ch = #27;
 closegraph;
end.
谢谢你的帮助