如何检查,如果鼠标按钮被释放,并在Borland公司帕斯卡尔7.0 THEN执行一次的程序?
-
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
是什么,但我认为它表明左边的按钮是否按下与否)
不隶属于 StackOverflow