Discuter à nouveau des formulaires
En plus des principes de conception de formulaire, vous devez également tenir compte du début et de la fin de votre application. Il existe quelques techniques pour décider à quoi ressemblera votre application au démarrage. Il est également important de se familiariser avec certains traitements qui se produisent lorsqu'une application est désinstallée.
Définir le formulaire de démarrage
Par défaut, le premier formulaire de l'application est désigné comme formulaire de démarrage. Ce formulaire s'affiche au démarrage de l'application (le premier code à exécuter est donc le code de l'événement Form_Initialize du formulaire). Si vous souhaitez afficher un autre formulaire au démarrage de l'application, vous devez modifier le formulaire de démarrage.
Pour modifier le formulaire de démarrage, procédez comme suit :
1. Dans le menu Projet, sélectionnez Propriétés du projet.
2. Sélectionnez "Général".
3. Dans la zone de liste "Objet de démarrage", sélectionnez le formulaire qui sera le nouveau formulaire de démarrage.
4. Sélectionnez OK.
Démarrer sans formulaire de démarrage
Parfois, vous souhaiterez peut-être démarrer l’application sans charger aucun formulaire. Par exemple, vous souhaiterez peut-être exécuter du code qui charge un fichier de données, puis décider lequel des différents formulaires afficher en fonction du contenu du fichier de données. Pour ce faire, créez un sous-processus nommé Main dans le module standard, comme indiqué dans l'exemple suivant.
Sous-Main()
DimintStatusAsInteger
'Appelez une procédure de fonction pour vérifier le statut de l'utilisateur.
intStatus=GetUserStatus
'Afficher un formulaire de démarrage basé sur le statut.
IfintStatus=1Alors
frmMain.Afficher
Autre
frmPassWord.Afficher
FinSi
Cette procédure doit être une sous-procédure et ne peut pas se trouver dans un module de formulaire. Pour définir le processus SubMain comme objet de démarrage, sélectionnez « Propriétés du projet » dans le menu « Projet », puis sélectionnez « Général », puis sélectionnez « SubMain » dans la zone « Objet de démarrage ».
Afficher un affichage rapide au démarrage
S'il y a un long processus d'exécution au démarrage, comme le chargement d'une grande quantité de données à partir d'une base de données ou le chargement de grands bitmaps, vous souhaiterez peut-être donner un affichage rapide au démarrage. Un affichage rapide est un formulaire qui affiche généralement du contenu tel que le nom de l'application, des informations de copyright et un simple bitmap. L'écran affiché lorsque vous démarrez Visual Basic est un affichage rapide.
Pour afficher un affichage rapide, vous devez utiliser le processus SubMain comme objet de démarrage et utiliser la méthode Show pour afficher le formulaire :
PRivateSubMain()
'Afficher l'affichage rapide.
frmSplash.Afficher
'Ajoutez le processus de démarrage ici.
...
'Afficher le formulaire principal et décharger l'affichage rapide.
frmMain.Afficher
DéchargerfrmSplash
EndSub
Un affichage rapide peut attirer l'attention de l'utilisateur lorsqu'une routine de démarrage est en cours d'exécution, donnant l'illusion que l'application se charge rapidement. Lorsque ces routines de démarrage sont terminées, le premier formulaire peut être chargé et affiché rapidement déchargé.
Pour les conceptions à affichage rapide, restez aussi simple que possible. Si vous utilisez un grand nombre de bitmaps ou un grand nombre de contrôles, l'affichage rapide lui-même se chargera lentement.
Fin de la candidature
Les applications basées sur des événements cessent de s'exécuter lorsque tous les formulaires ont été fermés et qu'aucun code n'est en cours d'exécution. S'il y a encore des formulaires masqués lorsque le dernier formulaire visible est fermé, l'application semble être terminée (car il n'y a aucun formulaire visible), mais en fait l'application continue de s'exécuter jusqu'à ce que tous les formulaires masqués soient fermés. Cela se produit car tout accès aux propriétés ou aux contrôles d’un formulaire déchargé entraînera le chargement implicite et silencieux de ce formulaire.
La meilleure façon d'éviter ce type de problème lors de la fermeture d'une application est de s'assurer que tous les formulaires sont déchargés. S'il existe plusieurs formulaires, vous pouvez utiliser la collection Forms et l'instruction Unload. Par exemple, un bouton de commande nommé cmdQuit peut être utilisé sur le formulaire principal pour quitter le programme. Si l'application ne comporte qu'un seul formulaire, la procédure événementielle Click peut être simplement :
PrivateSubcmdQuit_Click()
Décharge-moi
EndSub
Si votre application utilise plusieurs formulaires, vous pouvez décharger ces formulaires en plaçant du code dans la procédure événementielle Unload du formulaire principal. Vous pouvez utiliser la collection Forms pour vous assurer que tous les formulaires sont trouvés et fermés. Le code suivant utilise la collection de formulaires pour décharger tous les formulaires :
PrivateSubForm_Unload (CancelAsInteger)
Dimiasinteger
'Parcourez la collection de formulaires et déchargez chaque formulaire.
Fori=Forms.Count-1to0Step-1
Décharger les formulaires (i)
Suivant
EndSub
Il existe certaines situations dans lesquelles il est nécessaire de mettre fin à l'application quel que soit l'état des formulaires ou des objets existants. À cette fin, Visual Basic fournit l'instruction End.
L'instruction End provoque la fin immédiate de l'application : le code après l'instruction End ne sera pas exécuté et aucun autre événement ne se produira. En particulier, Visual Basic n'exécutera aucune des procédures événementielles QueryUnload, Unload ou Terminate du formulaire. Chaque référence à l'objet sera publiée, mais si vous définissez vos propres classes, Visual Basic n'exécutera pas l'événement Terminate des objets créés par ces classes.
En plus de l'instruction End, l'instruction Stop peut suspendre une application. Cependant, l'instruction Stop ne peut être utilisée que pendant le débogage car elle ne libère pas la référence à l'objet.
Pour plus d'informations sur l'instruction Stop, consultez « Utilisation du mode Interruption » dans le chapitre 13, « Débogage du code et gestion des erreurs » et « Instruction Stop » dans la référence du langage. Pour plus d'informations sur les collections de formulaires ou la libération de références d'objets, consultez le chapitre 9, « Programmation avec des objets ».
Utiliser les menus dans les applications
De nombreuses applications simples se composent uniquement d'un formulaire et de quelques contrôles, mais les fonctionnalités d'une application Visual Basic peuvent être améliorées en ajoutant des menus. Cette section explique comment créer et utiliser des menus dans votre application.
Créer des menus avec l'éditeur de menus
Utilisez l'éditeur de menus pour créer de nouveaux menus et barres de menus, ajouter de nouvelles commandes aux menus existants, remplacer les commandes de menu existantes par vos propres commandes, et modifier et supprimer des menus et barres de menus existants.
Pour afficher l'éditeur de menu :
Dans le menu Outils, choisissez Éditeur de menu.
-ou-
Cliquez sur le bouton Éditeur de menu dans la barre d'outils. Cela ouvrira l'éditeur de menu, comme le montre la figure 6.7.
Bien que la plupart des propriétés de contrôle de menu puissent être définies avec l'éditeur de menu, toutes les propriétés de menu sont également disponibles dans la fenêtre Propriétés. Les deux propriétés les plus importantes du contrôle de menu sont :
Nom - Il s'agit du nom utilisé pour désigner le contrôle de menu dans le code.
Légende : il s’agit du texte qui apparaît sur le contrôle.
D'autres propriétés de l'éditeur de menu, notamment Index, Checked et NegotiatePosition, sont décrites plus loin dans ce chapitre.
Utiliser la list box dans l'éditeur de menu
La zone de liste des contrôles de menu (située dans la partie inférieure de l'éditeur de menu) répertorie tous les contrôles de menu du formulaire actuel. Lorsque vous tapez un élément de menu dans la zone de texte du titre, l'élément apparaît également dans la zone de liste de contrôle de menu. Sélectionnez un contrôle de menu existant dans la zone de liste pour modifier les propriétés du contrôle.
Par exemple, la figure 6.7 montre les différentes commandes de menu du menu Fichier dans une application typique. La position d'un contrôle de menu dans la zone de liste de contrôle de menu détermine si le contrôle est un titre de menu, un élément de menu, un titre de sous-menu ou un élément de sous-menu :
Un contrôle de menu situé à gauche d’une zone de liste apparaît dans la barre de menus en tant que titre du menu.
Un contrôle de menu en retrait dans une zone de liste n'apparaîtra dans le menu que lorsque l'on clique sur son titre de menu principal.
Un contrôle de menu en retrait, s'il est suivi de certains contrôles de menu qui sont à nouveau en retrait, devient le titre d'un sous-menu. Chaque contrôle de menu en retrait sous le titre du sous-menu devient l'élément de menu de ce sous-menu.
Un contrôle de menu avec un trait d’union (-) comme propriété Légende apparaît sous forme de barre de séparation. Les barres de séparation divisent les éléments de menu en groupes logiques. Notez qu'un contrôle de menu ne peut pas être utilisé comme barre de séparation s'il s'agit d'un titre de menu, s'il comporte des éléments de sous-menu, s'il est coché ou désactivé, ou s'il possède une touche de raccourci.
Pour créer un contrôle de menu dans l'éditeur de menu, procédez comme suit :
1.Sélectionnez le formulaire
2. Dans le menu Outils, choisissez Editeur de menu. -ou- Cliquez sur le bouton Editeur de menu dans la barre d'outils.
3. Dans la zone de texte Titre, tapez le texte que vous souhaitez afficher dans la barre de menus pour le premier titre du menu. Si vous souhaitez qu'un certain caractère devienne la clé d'accès à l'élément de menu, vous pouvez également ajouter un caractère (&) devant le caractère. Dans les menus, ce caractère est automatiquement souligné.
Le texte du titre du menu apparaît dans la zone de liste de contrôle de menu.
4. Dans la zone de texte Nom, saisissez un nom qui sera utilisé pour faire référence au contrôle de menu dans le code. Voir « Titres des menus et directives de dénomination » plus loin dans ce chapitre.
5. Cliquez sur le bouton fléché gauche ou droit pour modifier le niveau d'indentation du contrôle.
6. Si nécessaire, vous pouvez également définir d'autres propriétés du contrôle. Ce travail peut être effectué dans l'éditeur de menu ou ultérieurement dans la fenêtre "Propriétés".
7. Sélectionnez "Suivant" pour créer un autre contrôle de menu. -ou- Cliquez sur Insérer pour ajouter un contrôle de menu entre les contrôles existants. Vous pouvez également cliquer sur les boutons fléchés haut et bas pour déplacer les contrôles parmi les contrôles de menu existants.
8. Si tous les champs de menu du formulaire ont été créés, sélectionnez "OK" pour fermer l'éditeur de menu. Le titre du menu créé sera affiché sur le formulaire. Au moment de la conception, cliquez sur un titre de menu pour dérouler l'élément de menu correspondant.
éléments de menu séparés
Une barre de séparation apparaît sur un menu sous la forme d'une ligne horizontale entre les éléments de menu. Dans un menu comportant de nombreux éléments, vous pouvez utiliser des barres de séparation pour diviser les éléments en groupes logiques. Par exemple, le menu « Aide » de Visual Basic utilise des barres de séparation pour diviser ses éléments de menu en trois groupes, comme le montre la figure 6.8.
Pour créer une barre de séparation dans l'éditeur de menu, procédez comme suit :
1. Si vous souhaitez ajouter une barre de séparation à un menu existant, sélectionnez "Insérer" et insérez un contrôle de menu entre les éléments de menu que vous souhaitez séparer.
2. Si nécessaire, cliquez sur la flèche droite pour mettre le nouvel élément de menu en retrait au même niveau que l'élément de menu dont il est séparé.
3. Tapez un trait d'union (-) dans la zone de texte Titre.
4.Définissez l'attribut "nom".
5. Sélectionnez OK pour fermer l'éditeur de menu.
Notez que bien que les barres de séparation soient créées en tant que contrôles de menu, elles ne répondent pas aux événements Click et ne peuvent pas être sélectionnées.
Attribuer des touches d'accès et des touches de raccourci
Améliorez l'accès au clavier aux commandes de menu en définissant des touches d'accès et des touches de raccourci.
clé d'accès
Les touches d'accès permettent d'appuyer sur la touche ALT et de saisir un caractère spécifié pour ouvrir un menu. Une fois le menu ouvert, la commande peut être sélectionnée en appuyant sur le caractère attribué (touche d'accès). Par exemple, appuyez sur la touche ALT E pour ouvrir le menu « Modifier », puis appuyez sur la touche P pour sélectionner l'élément de menu « Coller ». Dans le titre du contrôle de menu, une clé d'accès spécifiée apparaît sous la forme d'une lettre soulignée, comme le montre la figure 6.9.
Pour attribuer des touches d'accès aux commandes de menu dans l'éditeur de menu, procédez comme suit :
1. Sélectionnez l'élément de menu auquel la clé d'accès doit être attribuée.
2. Dans sa zone Titre, tapez un caractère (&) directement devant le caractère que vous souhaitez utiliser comme clé d'accès.
Par exemple, si le menu Edition illustré à la figure 6.9 est ouvert, la valeur suivante des paramètres de propriété Légende répond à la clé correspondante.
Notez que les clés d'accès en double ne peuvent pas être utilisées dans les menus. Si plusieurs éléments de menu utilisent la même clé d'accès, la clé n'aura aucun effet. Par exemple, si C est la clé d'accès à la fois pour "Couper" et "Copier", alors lorsque vous sélectionnez le menu "Edition" et tapez C, la commande "Copier" sera sélectionnée, mais seulement après avoir appuyé sur la touche ENTRÉE, le application Cette commande sera exécutée. Et la commande "cut" ne sera pas exécutée du tout.
touche de raccourci
Une touche de raccourci exécutera immédiatement un élément de menu lorsqu'elle sera enfoncée. Vous pouvez attribuer une touche de raccourci aux éléments de menu fréquemment utilisés, ce qui fournit une méthode d'accès au clavier en une seule étape, plutôt que la méthode en trois étapes consistant à maintenir la touche ALT enfoncée, à appuyer sur le titre du menu pour accéder au caractère, puis à appuyer sur la touche de menu. élément pour accéder au personnage. L'affectation des touches de raccourci comprend une combinaison de touches de fonction et de touches de contrôle, telles que la touche CTRL F1 ou la touche CTRL A. Ils apparaissent à droite de l'élément de menu correspondant dans le menu, comme le montre la figure 6.10.
Pour attribuer une touche de raccourci à un élément de menu, procédez comme suit :
1. Ouvrez l'« Éditeur de menus ».
2. Sélectionnez cet élément de menu.
3. Sélectionnez une touche de fonction ou une combinaison de touches dans la liste déroulante "Touche de raccourci".
Pour supprimer une attribution de touche de raccourci, sélectionnez « (aucun) » en haut de la liste.
Notez que la touche de raccourci apparaîtra automatiquement dans le menu ; il n'est donc pas nécessaire de taper la touche CTRL dans la zone Titre de l'éditeur de menu.
Titres de menu et directives de dénomination
Pour maintenir la cohérence avec d'autres applications, c'est une bonne idée de suivre les directives de dénomination établies lors de la création de menus.
Définir la propriété Légende
Lorsque vous attribuez des valeurs de titre aux éléments de menu, vous devez essayer de suivre les directives suivantes :
1. Les noms des éléments du menu doivent être uniques, mais les éléments d'action similaires dans différents menus peuvent avoir le même nom.
2. Le nom du projet peut être un mot, un mot composé ou plusieurs mots.
3. Chaque nom de projet doit avoir un caractère d'accès mémoire unique pour sélectionner les commandes avec le clavier. Le caractère d'accès doit être la première lettre du titre du menu, à moins qu'un autre caractère soit plus facile à retenir ; deux titres de menu ne peuvent pas utiliser le même caractère d'accès. Pour plus d'informations sur l'attribution de touches d'accès et de touches de raccourci, consultez la section « Création de menus avec l'éditeur de menus » plus haut dans ce chapitre.
4. Si une commande nécessite des informations supplémentaires avant d'être terminée, il doit y avoir des points de suspension (...) après son nom, comme une commande qui affiche une boîte de dialogue ("Enregistrer sous...", "Préférences..."). .
5. Gardez le nom du projet aussi court que possible. Si l'application devait être localisée, la longueur des mots augmenterait de près de 30 % dans la version en langue étrangère, ce qui pourrait ne pas laisser suffisamment d'espace pour répertorier les éléments de menu individuels. Pour plus de détails sur la localisation des applications, consultez le chapitre 16, « Distribution internationale ».
Convention de dénomination des menus
Pour rendre votre code plus lisible et maintenable, c'est une bonne idée de suivre une convention de dénomination établie lors de la définition de la propriété Name dans l'éditeur de menu. La plupart des règles de convention de dénomination recommandent d'identifier l'objet avec un préfixe (c'est-à-dire mnu pour un contrôle de menu), suivi du nom du menu de niveau supérieur (tel que Fichier). Pour les sous-menus, ceci est suivi du titre du sous-menu (tel que mnuFileOpen).
Pour plus d'informations , consultez l'Annexe B, « Conventions de codage Visual Basic » pour obtenir des exemples de conventions de dénomination recommandées. Voir « Conventions de codage VisualBasic » pour obtenir des exemples de conventions de dénomination recommandées.
->