如何检查,如果鼠标按钮被释放,并在Borland公司帕斯卡尔7.0 THEN执行一次的程序?

StackOverflow https://stackoverflow.com/questions/2575529

  •  24-09-2019
  •  | 
  •  

我使用Borland帕斯卡尔7.0,我想作一个插槽的比赛(如果3张随机数是一样的,你赢了)。问题是,当我点击菜单上的开始(Inditas)按钮,直到我松开鼠标按钮的过程执行多次。有人告诉我,我应该检查是否鼠标按钮时执行一次程序之前发布。我怎样才能做到这一点?下面是菜单如下:

procedure eger;
begin;
  mouseinit;
  mouseon;
  menu;
  repeat  
    getmouse(m);
    if (m.left) and (m.x>60) AND (m.x<130) and (m.y>120) and (m.y<150) then
      teglalap(90,90,300,300,blue);
    if (m.left) and (m.x>60) AND (m.x<130) and (m.y>160) and (m.y<190) then
      jatek(a,b,c,coin,coins);     

  until ((m.left) and (m.x>60) AND (m.x<130) and (m.y>240) and (m.y<270));
end;

谢谢,罗伯特

有帮助吗?

解决方案

在的情况下鼠标单元不提供一种方式来等待鼠标点击,或类似的东西,结果 你可以模拟与几个标志变量的“按钮发布的”行为。

示例:

button_down := false; // 1
repeat
   button_released := false; // 2
   getmouse(m);
   // 3
   If m.left and not button_down Then button_down := true;
   If not m.left and button_down Then
   Begin
      button_released = true; 
      button_down := false;
   End;
   //
  if button_released and ... then ...
  if button_released and ... then ...
until (...);

(我不知道m.left是什么,但我认为它表明左边的按钮是否按下与否)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top