Les deux révisions précédentesRévision précédente | |
issue112:tutoriel2 [2016/09/02 09:17] – auntiee | issue112:tutoriel2 [2016/09/02 15:20] (Version actuelle) – andre_domenech |
---|
Répondre aux événements | Répondre aux événements |
| |
Le menu préparé au-dessus répondra bel et bien à certains boutons, mais pas à d'autres. La différence vient de ce que la méthode par défaut HandleEvent de TApplication sait quoi faire quand arrive la commande cmQuit (elle sort, tout simplement). Mais elle n'a pas été programmée pour répondre à d'autres événements, tels que la commande cmHelp que nous avons mis dans l'élément de menu Help > About. | Le menu préparé au-dessus répondra bel et bien à certains boutons, mais pas à d'autres. La différence vient de ce que la méthode par défaut HandleEvent de TApplication sait quoi faire quand arrive la commande cmQuit (elle sort, tout simplement). Mais elle n'a pas été programmée pour répondre à d'autres événements, tels que la commande cmHelp que nous avons mise dans l'élément de menu Help > About. |
| |
C'est pourquoi nous remplacerons la méthode HandleEvent existante par la notre. Par exemple : | C'est pourquoi nous remplacerons la méthode HandleEvent existante par la nôtre. Par exemple : |
| |
C'est particulièrement important d'inclure l'original de HandleEvent avec le commande « héritée », car elle manipule la commande cmQuit et nous voulons que celle-là fonctionne toujours. | Il est particulièrement important d'inclure l'original de HandleEvent avec le commande « héritée », car elle manipule la commande cmQuit et nous voulons que celle-là fonctionne toujours. |
| |
Pour répondre à la commande cmHelp, nous utilisons une simple procédure if pour paramétrer une MessageBox. C'est une façon rapide de créer une boîte de dialogue de message, qui peut être de différents types (Information, Alerte, Erreur…). Nous n'allons pas la personnaliser beaucoup, car le paramètre final ne peut contenir que les flags pour déclarer le titre du dialogue et le choix des boutons « OK » et/ou « Cancel » (Annuler). Pour créer une boîte de dialogue plus sophistiquée, nous aurions à écrire notre propre classe (héritée de TWindow ou TDialog), qui, bien que faisable, demanderait un peu plus de travail. Plus de détails dans le troisième article de la série. | Pour répondre à la commande cmHelp, nous utilisons une simple procédure if pour paramétrer une MessageBox. C'est une façon rapide de créer une boîte de dialogue de message, qui peut être de différents types (Information, Alerte, Erreur...). Nous n'allons pas la personnaliser beaucoup, car le paramètre final ne peut contenir que les flags pour déclarer le titre du dialogue et le choix des boutons « OK » et/ou « Cancel » (Annuler). Pour créer une boîte de dialogue plus sophistiquée, nous aurions à écrire notre propre classe (héritée de TWindow ou TDialog), qui, bien que faisable, demanderait un peu plus de travail. Plus de détails dans le troisième article de la série. |
| |
**Setting up a file input box | **Setting up a file input box |
La boîte de dialogue obtenue n'a rien de spécial car elle est standard dans Turbo et Free Vision. Elle fonctionne tout simplement et est très réactive. | La boîte de dialogue obtenue n'a rien de spécial car elle est standard dans Turbo et Free Vision. Elle fonctionne tout simplement et est très réactive. |
| |
Cependant, depuis la dernière fois que j'en ai contemplé une, du temps de MS-DOS, il y a deux points à noter. Le premier est qu'elle semble manipuler correctement un système de fichiers POSIX, avec le séparateur de fichier « / » à la place des « C: » et « \ » spécifiques à MS-DOS. L'utilisateur peut facilement naviguer dans le répertoire home habituel d'Ubuntu. D'autre part, nous pouvons aussi voir que les caractères Unicode dans les noms de fichiers qui n’apparaissent pas dans la page de code ASCII ordinaire (codes jusqu'à 127) sont modifiés, particulièrement les accents dans « Música » et dans « Públic ». C'est peut-être un problème mineur pour certains, ou pour d'autres un problème majeur, si l'environnement visé pour un utilisateur final est principalement en écriture non-latine. | Cependant, depuis la dernière fois que j'en ai contemplé une, du temps de MS-DOS, il y a deux points à noter. Le premier est qu'elle semble manipuler correctement un système de fichiers POSIX, avec le séparateur de fichier « / » à la place des « C: » et « \ » spécifiques à MS-DOS. L'utilisateur peut facilement naviguer dans le répertoire home habituel d'Ubuntu. D'autre part, nous pouvons aussi voir que les caractères Unicode dans les noms de fichiers qui n’apparaissent pas dans la page de code ASCII ordinaire (codes jusqu'à 127) sont modifiés, particulièrement les accents dans « Música » et dans « Públic ». C'est peut-être un problème mineur pour certains, ou pour d'autres un problème majeur, si l'environnement visé pour un utilisateur final est principalement en écriture non latine. |
| |
**By this point, we have been using several of Free Vision’s library units, which must be included at the beginning of our program file: | **By this point, we have been using several of Free Vision’s library units, which must be included at the beginning of our program file: |
uses App, Objects, Menus, Drivers, Views, Dialogs, MsgBox, StdDlg; | uses App, Objects, Menus, Drivers, Views, Dialogs, MsgBox, StdDlg; |
| |
Le code complet de cet exemple est sur : http://pastebin.com/ZTbN7Eft, où le lecteur peut voir les points couverts dans cette partie de la série : personnaliser la barre de menu de Free Vision, répondre aux commandes et utiliser les boîtes de messages et les dialogues par défaut. Dans la prochaine partie, nous regarderons comment connecter notre application à une base de données moderne comme Sqlite3. | Le code complet de cet exemple est sur http://pastebin.com/ZTbN7Eft, où le lecteur peut voir les points couverts dans cette partie de la série : personnaliser la barre de menu de Free Vision, répondre aux commandes et utiliser les boîtes de messages et les dialogues par défaut. Dans la prochaine partie, nous regarderons comment connecter notre application à une base de données moderne comme Sqlite3. |