Obligement - L'Amiga au maximum

Samedi 20 avril 2024 - 06:10  

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


Réseaux sociaux

Suivez-nous sur X




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

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
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 qu'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]