Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3054 connectés 

 


Dernière réponse
Sujet : [VB] : gestion "pro" d'une interface
Carbon_14 En copiant sur un exemple Crosoft, j'utilise des variables BOOL (ou autre selon besoin) qui servent d'indicateur d'"état" (fichier lu, calcul fait, fichier sauvé, etc..).
On écrit ensuite un module qui fait "chef d'orchestre" appelé à chaque changement de contexte. Il gère les menus en fonction de chaque variable d"'état".
if (A and B and not C) then menu1.grisé else menu1.pasgrisé
menu2.enabled = (B AND C)
etc..
 
On peut même y mettre aussi (lisible ?) la gestion de boutons (visible, enablé, ..).
 
Si on modifie les menus, c'est plus facile à retrouver pour modif que quand dispersé dans de nombreuses sous-routines.
 
Les menus grisés (disablés) ne sont pas fonctionnels. Si click dessus, pas d'action.
 
Une variante consiste à faire dans ce module une liste des états des menus en fonction de l'action : "select case Action" puis des case Ouverture, case Sauvegarde, case Calcul_Truc, mais pas valable si 50 actions distinctes possibles (lourd).
 
Dans ce contexte, les menus reflètent l'état des variables, mais on ne passe pas "son temps" à tester les menus (ce qui dans l'absolu revient au même : variable gérée par VB (VC, BC, ..)).
 
Y a sans doute mieux (suis simple amateur (loisirs)).

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Carbon_14 En copiant sur un exemple Crosoft, j'utilise des variables BOOL (ou autre selon besoin) qui servent d'indicateur d'"état" (fichier lu, calcul fait, fichier sauvé, etc..).
On écrit ensuite un module qui fait "chef d'orchestre" appelé à chaque changement de contexte. Il gère les menus en fonction de chaque variable d"'état".
if (A and B and not C) then menu1.grisé else menu1.pasgrisé
menu2.enabled = (B AND C)
etc..
 
On peut même y mettre aussi (lisible ?) la gestion de boutons (visible, enablé, ..).
 
Si on modifie les menus, c'est plus facile à retrouver pour modif que quand dispersé dans de nombreuses sous-routines.
 
Les menus grisés (disablés) ne sont pas fonctionnels. Si click dessus, pas d'action.
 
Une variante consiste à faire dans ce module une liste des états des menus en fonction de l'action : "select case Action" puis des case Ouverture, case Sauvegarde, case Calcul_Truc, mais pas valable si 50 actions distinctes possibles (lourd).
 
Dans ce contexte, les menus reflètent l'état des variables, mais on ne passe pas "son temps" à tester les menus (ce qui dans l'absolu revient au même : variable gérée par VB (VC, BC, ..)).
 
Y a sans doute mieux (suis simple amateur (loisirs)).
HelloWorld vala vala ...
j'ai une interface, avec plein de boutons et demenus redondants afin de permettre facilement à un non initié comment faire ce qu'il veut. De meme, au lieu de lui dire "Eh non t'as pas fait tel calcul avant !" quand il clique sur un menu, ben certains menu sont grisés et sont dégrisés plus tard ...
alors voila : j'aimerais savoir comment il faut faire pour bien gerer cela car je commence à avoir beaucoup de menus et je trouve que c'est pas tres clair pour la relecture.
jusqu'a y'a pas longtemps ca faisait :
if FormPrincipale.MenuCalculXYZ.Enabled And FormPrincipale.MenuCalculXYZ.Checked then
 
et je vous raconte pas lorsqu'il y a plusieurs menus pour la condition, j'ai des if imbriques de 10 Km de long et c'est tres lourd à lire ...
alors j'ai commencé a mettre des booleens globaux que je gere quand le mec clique sur les menus ... mais il en faut plusieurs, un pour quand le calcul est fait, un pour si il veut afficher le resultat du calcul ... et faut 10 lignes d'initialisation dans le load de ma form ...
alors j'ai encore changé pour .... une structure, un record, un type quoi ...
Type _Etat
    A As Boolean
    B As Boolean
End Type
 
et je fait 2 variables globales : Calcul et Affiche pour si le calcul est fait et si on veut l'afficher
 
If Calcul.A And Affiche.A then ...
 
bon c'est un peu plus lisible, moins brouillon ...
mais je me dit que c'est un peu strange quand meme comme solution. Alors je voudrais savoir c'est quoi la vrai solution, celle qui est utilisee par les grosses applis genre Word avec plein de boutons, qui ne font pas toujours la meme chose, qui peuvent etre grisés ... :??: :??:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)