Accueil        Lexique        UNITéS        Algorithmes        Tutoriel        Groupe Facebook   

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

  1. 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
    • MU_WHEEL (64) Roue de souris, XaAES
    • MU_MX (128) Mouvement de souris, XaAES
    • MU_KEYBD4 (256) GEM/4
    • MU_NORM_KEYBD (512)Codes clés normalisés, XaAES
    • MU_DYNAMIC_KEYBD (1024) XaAES, pas encore implémentéq
    • X_MU_DIALOG (2048) (Geneva)
  2. ev_mbclicks comme dans evnt_button
  3. ev_mbmask comme dans evnt_button
  4. ev_mbstate comme dans evnt_button
  5. ev_mm1flags comme dans evnt_mouse
  6. ev_mm1x comme dans evnt_mouse
  7. ev_mm1y comme dans evnt_mouse
  8. ev_mm1width comme dans evnt_mouse
  9. ev_mm1height comme dans evnt_mouse
  10. ev_mm2flags comme dans evnt_mouse
  11. ev_mm2x comme dans evnt_mouse
  12. ev_mm2y comme dans evnt_mouse
  13. ev_mm2width comme dans evnt_mouse
  14. ev_mm2height comme dans evnt_mouse
  15. ev_mmgpbuff comme dans evnt_mesag
  16. ev_mtlocount comme dans evnt_timer
  17. ev_mthicount comme dans evnt_timer
  18. ev_mmox Résultat : coordonnée X actuelle de la souris
  19. ev_mmoy Résultat : coordonnée Y actuelle de la souris
  20. ev_mmobutton Résultat : état des boutons de la souris
  21. ev_mmokstate Résultat : Etat du clavier (Se référer à evnt_button)
  22. ev_mkreturn Résultat : touche enfoncée (Se référer à evnt_keybd)
  23. ev_mbreturn Résultat : nombre de clics sur le bouton de la souris (Se référer à evnt_button)
Remarque : En raison du grand nombre de paramètres à transmettre, cette fonction consomme un temps processeur relativement important, car les paramètres doivent d'abord être stockés sur la pile, puis distribués aux champs de saisie GEM.
  • MU_WHEEL : Ce message n'est envoyé que s'il n'y a pas de fenêtre principale ou si celle-ci ne comporte pas de widgets fléchés.
  • MU_MX : Ce message signale tout mouvement de souris à l'application (ev_mmox, ev_mmoy), avec l'état du clavier.
  • MU_KEYBD4 : Utilisé en interne dans GEM/4 pour vérifier une demande d'aide contextuelle.
  • MU_NORM_KEYBD : Si le masque d'événement MU_NORM_KEYBD est transmis à evnt_multi, l'application reçoit un code de touche normalisé (NKCC) au lieu du code de touche AES standard, ainsi que l'état de la souris. Ce masque peut être utilisé avec MU_KEYBD ; si les deux sont transmis, MU_NORM_KEYBD prévaut. Le code clé normalisé se trouve dans ev_mmokstate et ev_mkreturn, qui ont tous deux la même valeur.
  • X_MU_DIALOG : Si le bit 14 du paramètre ev_mflags est activé (ev_mflags |= X_MU_DIALOG), tout clic de souris ou action clavier dans les fenêtres contenant des boîtes de dialogue activera le bit 14 de la valeur renvoyée par ev_mwhich depuis evnt_multi. Dans ce cas, le mot 2 de ev_mmgpbuff contient l'index de l'objet sélectionné dans la boîte de dialogue. Si l'objet était un bouton TOUCHEXIT et que l'utilisateur a double-cliqué dessus, le bit 15 sera activé, comme pour form_do. Le mot 3 du tampon de messages ev_mmgpbuff contient le handle de la fenêtre dans laquelle l'événement s'est produit. Cette fonctionnalité est utilisée conjointement avec l'option wind_set de X_WF_DIALOG.

Résultat

Masque de bits qui spécifie quels événements se sont produits (même trains de bits que ev_mflags).

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!)
CRT (Standard)

DOS (Standard)

GEM : AES (Atari)

GEM : VDI (Atari)

Graph (Standard)

Overlay (Standard)

Printer Strings (Standard)

System (Standard)

TOS : BIOS (Atari)

TOS : GEMDOS (Atari)

TOS : XBIOS (Atari)

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!

Les unités CRT, DOS, Graph, Overlay, Printer et System sont standard à TOUS les compilateurs Pascal compatible avec Turbo Pascal 5. L'unité String a été introduit avec Turbo Pascal 7 (Et Pure Pascal 1.1) et permet de manipuler les chaines de caractères de type langage C. Les Unités GEM (VDI et AES) et TOS (BIOS, GEMDOS et XBIOS) sont spécifiques au système Atari ST et contiennent parfois des fonctions équivalentes à certaines fonctions des Unités générales (notamment BIOS). Les fonction XBIOS sont des fonctions permettant de tirer pleinement partie du matériel spécifique Atari, notamment Falcon (Audio, DSP, Blitter, Résolutions étendues etc)


Copyright © 2021 par Albatros Concept (Bruno Aubin)