Exercice 2 : CASES A COCHER BUT : L’exercice 2 vise a montrer l’utilisation de case à cocher (Check Box) et la possibilité de modifier le format de différents objets.
Sur votre fenêtre (Principale) rajoutez 3 cases à cocher (dans la ligne de bouton Check Box Control) les unes sous les autres. Tracez un rectangle de la largeur de la case et d’une longueur permettant de lire le texte. Fig. 2.1 - La fenêtre principale après l'ajout des 3 cases à cocher La première case à cocher vous servira à changer la couleur de votre titre en rouge. Changez le nom de la case, écrivez : Titre_Rouge (Name). Changez le texte de la case, écrivez : Mettre le titre en rouge (Caption). Positionnez la : Left = 100, Top = 120. Dans le code pour l’événement Click, écrivez : -- si la case de l’objet Titre_Rouge de la fenêtre Principale est cochée alors if Checked (Principale.Titre_Rouge) = 1 then
-- change la couleur du texte du titre en rouge -- attention : on écrit " fonction (Objet , Format); " ForeColor (Principale.Titre, Red);
-- si la case est décochée, revenir à l’état initial else -- exemple couleur du bleu choisi (0,128,255) -- la fonction Color permet d’écrire en format RGB ForeColor (Principale.Titre, Color (0,128,255)); end if ; Conseils : Prenez l’habitude de notez le chemin des objets que vous utilisez (exemple : Principale.Titre_Rouge). En effet, lorsque deux boutons ont le même nom sur deux fenêtres différentes, des conflits apparaissent. Rappelez vous aussi que les fonctions de la bibliothèque gb qui retournent des booléens, retournent les valeurs 0 et 1 ( UNIVERSAL_INTEGER) car gb.Bool est un sous-type des booléens de la bibliothèque Win32 dont 0 et 1 (UNIVERSAL_INTEGER) sont les valeurs.La deuxième case à cocher vous servira à changer la taille du bouton Quitter. Vous avez pu changer la couleur d’un objet, pourquoi pas sa taille ?
Changez le nom de la case, écrivez : Taille_Bouton_Quitter (Name). Changez le texte de la case, écrivez : Changer la taille du bouton quitter (Caption). Positionnez la : Left = 100, Top = 180. Dans le code pour l’événement Click, écrivez : -- si la case de l’objet Taille_Bouton_Quitter de la fenêtre Principale est cochée alors if Checked (Principale.Taille_Bouton_Quitter) = 1 then
-- modifie la hauteur du bouton Height (Principale.Bouton_Quitter, 100); -- modifie la largeur du bouton Width (Principale.Bouton_Quitter, 150);
-- si la case est décochée, revenir à l’état initial else -- exemple de grandeur de départ Height = 50 et Width =100 Height (Principale.Bouton_Quitter, 50); Width (Principale.Bouton_Quitter, 100);
end if ; Pour la troisième case à cocher vous allez pouvoir mettre ensemble les 2 points vu précédemment en incluant un troisième toujours dans la même idée.
Changez le nom de la case, écrivez : Mixer (Name). Changez le texte de la case, écrivez : Tremblement de terre (Caption). Positionnez la : Left = 100, Top = 240. Dans le code pour l’événement Click, écrivez : -- si la case de l’objet Mixer de la fenêtre Principale est cochée alors if Checked (Principale.Mixer) = 1 then
-- vous allez changer par exemple la position des 3 cases et du titre
-- 1ere case changez la position verticale Top (Principale.Titre_Rouge, 200);
-- 2eme case changez la position horizontale Left (Principale.Taille_Bouton_Quitter, 200);
-- 3eme case changez la position verticale Top (Principale.Mixer, 0);
-- titre changez la position verticale et horizontale Top (Principale.Titre, 100); Left (Principale.Titre, 0);
-- changez la couleur du fond de la fenêtre et sa taille BackColor (Principale.Form, Black); Height (Principale.Form, 450); Width (Principale.Form, 525);
else
-- si la case est décochée, revenir à l’état initial
-- 1ere case changez la position verticale Top (Principale.Titre_Rouge, 120);
-- 2eme case changez la position horizontale Left (Principale.Taille_Bouton_Quitter, 100);
-- 3eme case changez la position verticale Top (Principale.Mixer, 240);
-- titre changez la position verticale et horizontale -- on utilise cette fois la procedure Move avec comme paramètres -- les positions Left, Top, Width, Height (dans cet ordre) Move (Principale.Titre, 60, 50, 350, 30);
-- changez la couleur du fond de la fenêtre et sa taille BackColor (Principale.Form, Color (192,192,192)); Height (Principale.Form, 500); Width (Principale.Form, 500);
end if ; Fig. 2.2 - Votre fenêtre dans un état "normal"... Fig. 2.3 - La même fenêtre dans un état "tremblement de terre"... Voilà, votre second exercice est terminé : sauvez le projet et la fenêtre, retournez sous Object ADA, compilez, construisez l'exécutable, et admirez le résultat ! Commentaire Utilisez la procédure Checked pour savoir si une case est cochée ou pas. Cette procédure retourne un booléen valant 0 ou 1 (du type Universal_Integer). Utilisez les procédures du paquetage gb pour transformer des objets. Ces procédures ont les mêmes nom que les propriétés que l’on trouve dans le Project Manager et elles ont presque toujours deux paramètres : l’objet et le format spécifique à la propriété. Ceci est une généralité, référez-vous donc à la spécification du paquetage gb si besoin est. Exemple : La procédure Left nous permet de changer la position horizontale d’un objet. La valeur de la position est du type gb.INT qui est un sous-type du type Win32.INT qui est lui-même un sous-type de Interfaces.C.Int, bref ce sont des entiers. procedure Left (Obj : in out Object; Val : gb.INT);
La fonction Left nous permet de connaître la position horizontale d’un objet. function Left (Obj : in Object) return gb.INT; |