Como posso verificar se o botão do mouse foi liberado e ENTÃO executar um procedimento uma vez no Borland Pascal 7.0?

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

  •  24-09-2019
  •  | 
  •  

Pergunta

Eu uso o Borland Pascal 7.0 e gostaria de fazer um jogo de slots (se 3 números aleatórios forem iguais, você ganha).O problema é que quando clico no botão iniciar (Inditas) do menu, o procedimento é executado diversas vezes até eu soltar o botão do mouse.Disseram-me que deveria verificar se o botão do mouse foi liberado antes de executar o procedimento uma vez.Como eu posso fazer isso?Esta é a aparência do menu:

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;

Obrigado, Roberto

Foi útil?

Solução

Caso a unidade do mouse não forneça uma maneira de esperar por um clique do mouse ou algo semelhante,
você pode simular um comportamento de "botão liberado" com algumas variáveis ​​de sinalização.

Exemplo:

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

(não sei o que m.left é, mas presumo que indica se o botão esquerdo está pressionado ou não)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top