Les unités de Pure Pascal (langage Pascal pour les ordinateurs de la gamme Atari ST), compatible Turbo Pascal.
Unité GEM : Fonction evnt_multi
Déclaration
function evnt_multi( ev_mflags, ev_mbclicks, ev_mbmask, ev_mbstate, ev_mm1flags, ev_mm1x, ev_mm1y, ev_mm1width, ev_mm1height, ev_mm2flags, ev_mm2x, ev_mm2y, ev_mm2width, ev_mm2height : Integer; var ev_mmgpbuff : ARRAY_8; ev_mtlocount, ev_mthicount : Integer; var ev_mmox, ev_mmoy, ev_mmobutton, ev_mmokstate, ev_mkreturn, ev_mbreturn : Integer ) : Integer;Description
Cette fonction attend que l'un des événements possibles se produise.C'est, pour ainsi dire, une combinaison des fonctions plus simples evnt_keybd , evnt_button , evnt_mouse , evnt_mesag et evnt_timer . Vous pouvez attendre un appui sur un bouton, un appui sur un bouton de la souris, deux événements de souris différents, un message de l'AES et l'écoulement d'un certain laps de temps.
Malgré sa complexité, presque tous les programmes GEM appellent la fonction evnt_multi dans sa boucle principale pour récupérer les événements à traiter.
Paramètres
- ev_mflags Masque qui spécifique les événements à attendre.
Preuve comme suit :- MU_KEYBD (1) frappe au clavier
- MU_BUTTON (2) Clic de souris
- MU_M1 (4) premier événement souris
- MU_M2 (8) deuxième événement souris
- MU_MESAG (16) information
- MU_TIMER (32) Période de temps
- ev_mbclicks comme dans evnt_button
- ev_mbmask comme dans evnt_button
- ev_mbstate comme dans evnt_button
- ev_mm1flags comme dans evnt_mouse
- ev_mm1x comme dans evnt_mouse
- ev_mm1y comme dans evnt_mouse
- ev_mm1width comme dans evnt_mouse
- ev_mm1height comme dans evnt_mouse
- ev_mm2flags comme dans evnt_mouse
- ev_mm2x comme dans evnt_mouse
- ev_mm2y comme dans evnt_mouse
- ev_mm2width comme dans evnt_mouse
- ev_mm2height comme dans evnt_mouse
- ev_mmgpbuff comme dans evnt_mesag
- ev_mtlocount comme dans evnt_timer
- ev_mthicount comme dans evnt_timer
- ev_mmox Résultat : coordonnée X actuelle de la souris
- ev_mmoy Résultat : coordonnée Y actuelle de la souris
- ev_mmobutton Résultat : état des boutons de la souris
- ev_mmokstate Résultat : Etat du clavier (Se référer à evnt_button)
- ev_mkreturn Résultat : touche enfoncée (Se référer à evnt_keybd)
- ev_mbreturn Résultat : nombre de clics sur le bouton de la souris (Se référer à evnt_button)
Résultat
Masque de bits qui spécifie quels événements se sont produits (il peut y en avoir plusieurs).Références croisées evnt_keybd, evnt_button, evnt_mouse, evnt_mesag, evnt_timer
Exemple
{ Boucle principale d'un éditeur GEM. Nous avons besoin } { de frappes, de clics de souris, de messages et nous voulons } { faire clignoter le curseur toutes les 0,5 secondes } event := evnt_multi( MU_KEYBD or MU_MESAG or MU_BUTTON or MU_TIMER, 2, 1, 1,{ pour les clics de souris } 0, 0, 0, 0, 0, { on n'a pas besoin } 0, 0, 0, 0, 0, { on n'a pas besoin } pipe, { pour les infos } 500, 0, { toutes les 0,5 secondes } x, y, state, { État de la souris } kstate, { État du clavier } key,{ bouton} clicks ); { Nombre de clics de souris } if (event and MU_KEYBD) <> 0 then ProcessKey( key ); if (event and MU_BUTTON) <> 0 then ProcessMouseClick( x, y, state, kstate, clicks ); if (event and MU_MESAG) <> 0 then ProcessMessage( pipe ); if (event and MU_TIMER) <> 0 then BlinkCursor;
Vous trouverez dans cette zone la liste de toutes les Unités (équivalent des "Librairies" en C) de Pure Pascal. Les Unités indiqués comme standards existent dans la majorité des compilateurs Pascal existant sur ordinateurs 16 bits et au dela (dont Turbo Pascal 3 mini). Les unités indiqués comme Atari sont spécifiques aux systèmes d'exploitation des Atari ST (TOS n.n).
Accès aux unités
Les menus déroulants de chaque unité sont des accès directs aux procédures et fonctions, classés alphabétiquement (sans tenir compte de la casse, puisque le langage Pascal ne tient pas compte de la casse!)Cette page Unités est issu du fichier UNIT.HLP de la documentation de Pure Pascal (d'Application Systems Heidelberg), qui a été convertie en format TXT puis traduite de l'Allemand grâce à Google Translator : des milliers de copier/coller de et vers Google translator ont été nécessaires, ne connaissant pas un mot d'Allemand!