Comment puis-je vérifier si le bouton de la souris est relâché, et puis exécutez une procédure une fois dans Borland Pascal 7.0?

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

  •  24-09-2019
  •  | 
  •  

Question

J'utilise Borland Pascal 7.0, et je voudrais faire un jeu de machines à sous (Si 3 nombres aléatoires sont les mêmes, vous gagnez). Le problème est que lorsque je clique sur le bouton Démarrer (Inditas) dans le menu, la procédure exécute plusieurs fois jusqu'à ce que je relâche le bouton de la souris. On m'a dit que je devrais vérifier si le bouton de la souris est relâché avant d'exécuter une fois la procédure. Comment puis je faire ça? Voici ce que le menu ressemble à:

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;

Merci, Robert

Était-ce utile?

La solution

Dans le cas où l'unité de la souris ne fournit pas un moyen d'attendre un clic de souris, ou quelque chose de similaire,
vous pouvez simuler un comportement « bouton publié » avec quelques variables de drapeau.

Exemple:

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

(Je ne sais pas ce que m.left est, mais je suppose qu'il indique si le bouton gauche est en panne ou non)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top