¿Cómo puedo comprobar si se suelta el botón del ratón, y luego ejecutar un procedimiento una vez en Borland Pascal 7.0?

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

  •  24-09-2019
  •  | 
  •  

Pregunta

Yo uso Borland Pascal 7.0, y me gustaría hacer un juego de ranuras (3 números al azar Si son los mismos, se gana). El problema es que cuando hago clic en el botón de inicio (Inditas) en el menú, el procedimiento ejecuta muchas veces hasta que suelte el botón del ratón. Me dijeron que yo debería comprobar si el botón del ratón se libera antes de ejecutar el procedimiento una vez. ¿Cómo puedo hacer eso? Esto es lo que las miradas menú como:

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;

Gracias, Robert

¿Fue útil?

Solución

En el caso de la unidad de ratón no proporciona una manera de esperar a un clic del ratón, o algo similar,
se puede simular un "botón lanzado" comportamiento con un par de variables de bandera.

Ejemplo:

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 (...);

(no sé lo que es m.left pero supongo que indica si el botón izquierdo está inactivo o no)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top