Exercice 3 : TEXTE & BOUTONS RADIO BUT : L’exercice 3 vise a montrer l’utilisation d’une fenêtre texte (Text Box Control) et des boutons radio (Radio Button Control) tout en exerçant les connaissances précédemment acquises. Partie A : Gestion du texte
Sur votre fenêtre (Principale) rajoutez une boite de texte (Text Box Control) de longueur égale à votre titre. Ajoutez dessous un Label (Label Control) de même grandeur, puis trois boutons radio (Radio Button Control).
1/ Renommez les objets
La boite de texte Changez le nom de l’objet, écrivez : Boite_Saisie (Name). Changez le texte de l’objet, laissez vide (Text).
Le label Changez le nom de l’objet, écrivez : Texte_Saisi (Name). Changez le texte de l’objet, écrivez : texte saisi dans la boîte Boite_Saisie (Caption).
Le premier bouton radio Changez le nom de l’objet, écrivez : Texte_Rouge (Name). Changez le texte de l’objet, écrivez : Texte rouge (Caption).
Le deuxième bouton radio Changez le nom de l’objet, écrivez : Texte_Italique (Name). Changez le texte de l’objet, écrivez : Texte italique (Caption).
Le troisième bouton radio Changez le nom de l’objet, écrivez : Texte_Gras (Name). Changez le texte de l’objet, écrivez : Texte gras (Caption).
Le but de cette interface est simple : afficher le texte entré dans la boîte de texte (Boite_Saisie) dans le label (Texte_Saisi). Les boutons radio vont servir à formater ce texte soit en rouge, soit en italique, soit en gras. Fig. 3.1 - Remarquez la grille qui permet un alignement correct des objets sur la fenêtre.
2/ Afficher le texte dans le label Inscrivez dans le code de Boite_Saisie : procedure Boite_Saisie_Changed is begin
-- écrit dans Principale.Texte_Saisi la chaîne qui se trouve dans Principale.Boite_Saisie à chaque fois qu’elle est modifiée Text (Principale.Texte_Saisi, Text (Principale.Boite_Saisie));
end Boite_Saisie_Changed; 3/ Formater le texte
Afin qu’il n’y aie qu’un choix possible, vous devez, lors de la sélection d’un bouton, désélectionner les autres.
Pour le premier bouton écrivez donc : procedure Texte_Rouge_Click is begin -- si le bouton est sélectionné if Checked (Principale.Texte_Rouge) = 1 then
-- changer la couleur du texte ForeColor (Principale.Texte_Saisi, Red);
-- rétablir le format éventuellement présent dû à une précédente sélection FontItalic (Principale.Texte_Saisi, 0); FontBold (Principale.Texte_Saisi, 0);
-- désélectionner les autres boutons Checked (Principale.Texte_Italique, 0); Checked (Principale.Texte_Gras, 0);
end if; end Texte_Rouge_Click; Pour les deux autres boutons essayez d’écrire leur code par vous-même. Puis contrôlez avec les codes ci-dessous.
Deuxième bouton :
procedure Texte_Italic_Click is begin if Checked (Principale.Texte_Italique) = 1 then
FontItalic (Principale.Texte_Saisi, 1); ForeColor (Principale.Texte_Saisi, Black); FontBold (Principale.Texte_Saisi, 0);
Checked (Principale.Texte_Rouge, 0); Checked (Principale.Texte_Gras, 0);
end if; end Texte_Italic_Click; Troisième bouton :
procedure Texte_Gras_Click is begin
if Checked (Principale.Texte_Gras) = 1 then
FontBold (Principale.Texte_Saisi, 1); ForeColor (Principale.Texte_Saisi, Black); FontItalic (Principale.Texte_Saisi, 0);
Checked (Principale.Texte_Rouge, 0); Checked (Principale.Texte_Italique, 0);
end if; end Texte_Gras_Click; Partie B : Utilisation de fonctions
Afin d’approfondir vos connaissances rajoutez quelques fonctions : MouseDown et MouseUp.
Lorsque vous cliquez avec la souris, vous pouvez exécuter un code lors de la pression du bouton de la souris ou lorsque vous le relâchez. Exemple : Agrandir un objet lors d’un clic de souris.
Dans le code de l’objet Label, sélectionnez, dans le menu déroulant Code, MouseDown et écrivez :
procedure Texte_Saisi_MouseDown (Button : gb.MOUSEBUTTON_t; Shift : gb.BOOL; X : gb.INT; Y : gb.INT) is begin
-- doublez les valeurs de départ Height (Principale.Texte_Saisi, 62); Width (Principale.Texte_Saisi, 702); FontSize (Principale.Texte_Saisi, 25);
end Texte_Entre_MouseDown; Puis dans le menu déroulant Code, sélectionnez MouseUp et écrivez :
procedure Texte_Entre_MouseUp (Button : gb.MOUSEBUTTON_t; Shift : gb.BOOL; X : gb.INT; Y : gb.INT) is begin
-- les valeurs doivent être les valeurs de départ ! Height (Principale.Texte_Saisi, 31); Width (Principale.Texte_Saisi, 351); FontSize (Principale.Texte_Saisi, 9);
end Texte_Entre_MouseUp; Remarquez que si vous faites glisser la souris en maintenant le bouton appuyé et le lâchez en dehors du label, le label restera de grande taille puisque MouseUp n’a pas été effectué sur le label. Observez également que dans le menu déroulant Code du Code Editor une petite étoile apparaît sur les événements qui contiennent un code.
Un autre exercice : comment afficher une petit boîte de dialogue lors du passage de la souris sur un objet ?
Prenez par exemple le titre et sélectionnez, dans le menu déroulant Code du Code Editor, MouseMove et écrivez :
procedure Titre_MouseMove (Button : gb.MOUSEBUTTON_t; Shift : gb.BOOL; X : gb.INT; Y : gb.INT) is begin Hide (Principale.titre) ; end Titre_MouseMove; Le titre disparaît lors du passage de la souris sur ce dernier, mais comment le faire réapparaître ? Pour cela nous allons à nouveau utiliser l’événement MouseMove, mais avec la méthode Show et cela non pas sur un objet mais sur la fenêtre.
Sélectionnez donc, pour la fenêtre Principale.Form, dans le menu déroulant Code du Code Editor, MouseMove et écrivez :
procedure Form_MouseMove (Button : gb.MOUSEBUTTON_t; Shift : gb.BOOL; X : gb.INT; Y : gb.INT) is begin Show (Principale.titre); end Form_MouseMove; Voilà, vous avez brillamment terminé l’exercice 3 ! Sauvegardez votre projet et votre fenêtre sous GUI Builder, retournez sous Object ADA, compilez, construisez l’exécutable, et laissez échapper un Ôhhhh béat d’admiration… |