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

  FORUM HardWare.fr
  Programmation

  [VB] : gestion "pro" d'une interface

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] : gestion "pro" d'une interface

n°36932
HelloWorld
Salut tout le monde!
Posté le 05-06-2001 à 09:41:55  profilanswer
 

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 ... :??: :??:


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 05-06-2001 à 09:41:55  profilanswer
 

n°37000
Carbon_14
Posté le 05-06-2001 à 13:25:20  profilanswer
 

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)).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [VB] : gestion "pro" d'une interface

 

Sujets relatifs
[MySQL] gestion des datesGestion des personnes / asteintes / Planning
Gestion des évènements avec les MFC[Linux] Gestion des erreurs sous Apache
[ Visual C++ ] créer une console (style dos) dans une interface ?Soucis de gestion de l'heure en c++
******** Gestion des scripts PHP sous Apache ********Gestion des évènements avec les MFC
Gestion des évènements avec les MFCC++ et interface graphique pour windows (OWL)
Plus de sujets relatifs à : [VB] : gestion "pro" d'une interface


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR