Obligement - L'Amiga au maximum

Dimanche 26 septembre 2021 - 14:03  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Quizz
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Trucs et astuces
 · Articles divers

 · Articles in english


Twitter

Suivez-nous sur Twitter




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

 · Menu des galeries

 · BD d'Amiga Spécial
 · Caricatures Dudai
 · Caricatures Jet d'ail
 · Diagrammes de Jay Miner
 · Images insolites
 · Fin de jeux (de A à E)
 · Fin de Jeux (de F à O)
 · Fin de jeux (de P à Z)
 · Galerie de Mike Dafunk
 · Logos d'Obligement
 · Pubs pour matériels
 · Systèmes d'exploitation
 · Trombinoscope Alchimie 7
 · Vidéos


Téléchargement

 · Documents
 · Jeux
 · Logiciels
 · Magazines
 · Divers


Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Programmation : Amiga C Manual - Les alertes
(Article écrit par Anders Bjerin et extrait d'Amiga C Manual - mars 1990)


Note : traduction par Serge Hammouche.

6. Les alertes

6.1 Introduction

Les alertes système sont l'ultime façon dont disposent les programmes pour informer l'utilisateur d'un problème. Lorsque votre programme affiche un message d'alerte, tous les écrans descendent et une boîte noire et rouge s'ouvre en haut de l'écran. L'utilisateur n'attrape pas qu'une crise cardiaque car cela lui indique ce qui a cloché et la manière de s'en sortir si possible.

6.2 Différents nivaux de messages

Il y a trois niveaux de messages :
  1. Si vous désirez prévenir l'utilisateur que quelque chose ne va pas, mais il n'y a rien de grave, vous pouvez faire clignoter les écrans. Vous le faites par l'appel de la fonction DisplayBeep(), et les couleurs d'arrière-plans de chaque écran clignoreront.
  2. Si quelque chose ne va pas et que vous désiriez en informer l'utilisateur, peut-être même vouloir qu'il/elle fasse quelque chose, vous devriez ouvrir une requête (voir chapitre 5 - Les requêtes).
  3. Si quelque chose ne va pas du tout (plantage du système, etc.), votre programme devrait générer un message d'alerte, DisplayAlert().
6.3 Comment utiliser la fonction DisplayAlert()
  • Synopsis : resultat = DisplayAlert( nr, message, hauteur );
  • nr : (long). Valeur qui décrit s'il s'agit d'une RECOVERY_ALERT ou d'une DEADEND_ALERT.
  • message : (char *). Pointeur d'un champ de caractères (char). Il contient les chaînes que nous voulons afficher, ainsi que quelques informations supplémentaires (position, etc.). La chaîne est divisée en sous-chaînes qui contiennent toutes des informations sur sa position, etc. Chaque sous-chaîne est composée de :
    • Deux octets (16 bits) utilisés pour la position x du texte.
    • Un octet (8 bits) utilisé pour la position y du texte.
    • La chaîne du texte terminée par le signe NULL ('\0').
    • Un bit de continuation. S'il est vrai, il y a une autre sous-chaîne après celle-ci, sinon il s'agit de la dernière sous-chaîne (pour plus d'informations, voir ci-dessous).
  • hauteur : (long). La hauteur de la boîte d'alerte.
  • resultat : (long). La fonction DisplayAlert() retourne une valeur booléenne. S'il s'agit d'une RECOVERY_ALERT et que l'utilisateur a appuyé sur le bouton gauche de la souris, il renvoie TRUE. Cette valeur est FALSE si l'utilisateur a appuyé sur le bouton droit de la souris. S'il s'agit d'une DEADEND_ALERT, la valeur retournée sera immédiatement FALSE.
6.4 Exemples de chaînes et de sous-chaînes

Si nous voulons afficher le message d'alerte suivant :

---------------------------------------------------------------
|                                                             |
|  ERREUR ! Pas assez de mémoire                              |
|                                                             |
---------------------------------------------------------------


... la chaîne devrait être déclarée et initialisée ainsi :

  /* Déclare le champ de char (la chaîne):                               */
  char message[30]; /* 30 octets nécéssaires.                             */

  /* Remplit la chaîne avec le message : (pensez à laisser de            */
  /* la place pour les trois premiers octets contenant la position x/y.) */
  strcpy( message, "   ERREUR ! Pas assez de mémoire );
  /* Le signe NULL est placé automatiquement à la position 28.           */

  /* Remplit la chaîne avec la position (x,y) (trois premier octets)     */
  message[0]=0;  /* position X inférieure à 256, donc 0.                 */
  message[1]=32; /* 32 pixels sortis.                                    */
  message[2]=16; /* 16 lignes vers le bas.                               */

  /* Mettre l'octet de continuité sur FALSE car il n'y a plus            */
  /* de sous-chaînes après celui-là :                                    */
  message[29]=FALSE;

Si de plus nous voulons afficher le message d'alerte suivant :

---------------------------------------------------------------
|  ERREUR ! Pas assez de mémoire                              |
|                                                             |
|  Achetez une extension de mémoire !                         |
---------------------------------------------------------------


La chaîne devrait être déclarée et initialisée comme suit :

  /* Déclare le champ de char (la chaîne):                               */
  char message[58]; /* 58 octets nécéssaires.                             */

  /* Remplit la chaîne avec le message : (pensez à laisser de            */
  /* la place pour les trois premiers octets contenant la position x/y.) */
  /* position.)                                                          */
  strcpy( message, "   ERREUR ! Pas assez de mémoire );

  /* Ajoutez la deuxième sous-chaîne : rapplelez-vous de laisser         */
  /* cette fois de la place pour cinq octets au début de la chaîne.      */
  /* Ils sont utilisés par le signe NULL qui clos la première            */
  /* sous-chaîne, l'octet de continuation, et trois ooctets              */
  /* pour la position de la seconde sous-chaîne)                         */
  strcat( message, "     Achetez une extension de mémoire !");
  /* Le signe NULL terminant la deuxième sous-chaîne est placée          */
  /* automatiquement à la position 56.                                   */

  /* Remplit la chaîne avec la position (x,y) (trois premiers octets)    */
  message[0]=0;  /* position X inférieure à 256, donc 0.                 */
  message[1]=32; /* 32 pixels sortis.                                    */
  message[2]=16; /* 16 lignes vers le bas.                               */

  /* Ajoutez le signe de fin de première sous-chaîne NULL:               */
  /* (il fut supprimé lorsque nous avons relié les deux chaînes avec     */
  /* la fonction strcat())                                               */
  message[28]='\0';

  /* Mettre l'octet de continuation sur TRUE pour indiquer à             */
  /* Intuition qu'une nouvelle sous-chaîne arrive :                      */
  message[29]=TRUE;

  /* Remplir la seconde sous-chaîne avec la position (x,y) :             */
  message[30]=0;  /* position X inférieure à 256.                        */
  message[31]=32; /* 32 pixels sortis.                                   */
  message[32]=32; /* 32 lignes en bas.                                   */

  /* Mettre l'octet de continuité sur FALSE car il n'y a                 */
  /* plus de sous-chaînes après celui-là :                               */
  message[57]=FALSE;

6.5 Fonctions

DisplayAlert()

Cette fonction active un message d'alerte.
  • Synopsis : resultat = DisplayAlert( nr, message, hauteur );
  • nr : (long). Valeur indiquant s'il s'agit d'une RECOVERY_ALERT ou d'une DEADEND_ALERT.
  • message : (char *). Pointeur d'un champ de caractères (char). Il contient les chaînes que nous voulons afficher et quelque autres informations (position, etc.). La chaîne elle-même est divisée en sous-chaînes qui contiennent toutes des informations sur sa position, etc.
    • Deux octets (16 bits) utilisés pour la position x du texte.
    • Un octet (8 bits) utilisé pour la position y du texte.
    • Un bit de continuité. S'il est TRUE, il y a une autre sous-chaîne après celle-là, sinon il s'agit de la dernière sous-chaîne.
  • hauteur : (long) la hauteur de la boîte d'alerte.
  • resultat : (long) la fonction DisplayAlert() retourne une valeur booléenne. S'il s'agit d'une RECOVERY_ALERT et que l'utilisateur a appuyé sur le bouton gauche de la souris, il renvoie TRUE. Cette valeur est FALSE si l'utilisateur a appuyé sur le bouton droit de la souris. S'il s'agit d'une DEADEND_ALERT, la valeur retournée sera immédiatement FALSE.
6.6 Exemple

Voici un exemple (dans le répertoire "Amiga_C_Manual/6.Alertes") avec une alerte :

Exemple 1

Cet exemple affiche un message d'alerte en haut de l'écran.


[Retour en haut] / [Retour aux articles] [Chapitre précédent : les requêtes] / [Chapitre suivant : les menus]