Suivez-nous sur X
|
|
|
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
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
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 :
- 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.
- 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).
- 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.
|