Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 2013
-
29 nov. 2010 à 19:05
bitshifter
Messages postés61Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention28 mai 2012
-
1 déc. 2010 à 22:12
Bonsoir,
j'ai une appli constituée d'un form, de textbox, de command_button et de listbox. Elle se présente de la manière suivante :
dans le form, 6 frames pour délimiter des zones de calculs.
Je voudrais"scinder l'application en deux savoir :
- d'un cote frame 1, 2, 3, 4
- de l'autre frame 1, 2, 5, 6
donc frames 1 et 2 communes
le but etant d'afficher dans un premier temps
- frames 1, 2, 3, 4
et par un bouton next,remplacer ce frame par le 1, 2, 5, 6
et pouvoir aussi revenir en arrière avec un bouton previous
dans un premier temps, j'ai fait pour tester deux forms, un avec le premier frame, l'autre avec le second et avec un bouton, j'affiche le second au dessus du premier et je fais passer dans le sens inverse avec le previous.
Ca fonctionne mais je me demande si il n'y avais pas moins "bourrin" comme méthode, avec des modules par exemple ....
Autre petite question : dans la configuration actuelle, avec mes 2 forms, mon form2 a besoin d'une valeur présente dans le form1 et j'ai beau essayer, je ne vois pas comment faire.
paramecie
Messages postés15Date d'inscriptionsamedi 23 octobre 2010StatutMembreDernière intervention29 novembre 2010 29 nov. 2010 à 22:02
Salut -
Tellement de solutions... en développement il n'y en a jamais une unique, mais chacune est un compromis.
Ici par exemple, et très vite regardé, je te proposerais de créer un User Control par "page", et pour simuler le passage de page en page, de jouer sur leur visibilité (.Visible) avec un petit .Zorder pour mettre tout au dessus celui qui est visible.
De cette façon, tes boutons, champs, et surtout codes sont bien séparés et propres à chaque User Control (quitte à trouver des moyens de communications, par globale... ou mieux Event, ou passage d'un objet commun en paramètre, etc.)
Bref, c'est une solution qui peut convenir - et probablement plus claire (en particulier au niveau du code séparé) que de tout mettre dans des grandes frames...
bitshifter
Messages postés61Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention28 mai 20121 30 nov. 2010 à 00:59
Une solution que j'emploie souvent est de mettre en forme les frames visibles en premier et de mettre leur mise en place dans le bouton les appelant.
Pour les frames à rendre visibles, je les place et le bouton précédent les rend invisibles.
Le bouton appelant ces nouveaux frames les rend visibles et rend invisibles ceux qui ne sont plus nécessaires.
Si la form est de style resizeable, une bonne idée est aussi de placer ces frames aux coordonnées correctes.
------------------------
richmann
Un chien pense: Ils me nourrissent et me soignent: ils sont des dieux.
Un chat pense: Ils me nourrissent et me soignent: je suis un dieu.
-------------------
Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 20131 30 nov. 2010 à 11:48
merci a vous deux popur les solutions ....... pourrais tu préciser un peu bitschifter ta méthode ???? notamment sur les boutons appelant et rendant invisible les dites frames ????
Merci bien
Vous n’avez pas trouvé la réponse que vous recherchez ?
l0r3nz1
Messages postés218Date d'inscriptionmercredi 20 février 2008StatutMembreDernière intervention17 mars 2012 1 déc. 2010 à 14:21
Salut,
tu as de belles pistes. dommage que tu ne sois pas en langage objet dans ce cas la.
je crois pouvoir repondre a
" pourrais tu préciser un peu bitschifter ta méthode ???? notamment sur les boutons appelant et rendant invisible les dites frames ????
"
dans l editeur de formulaire, double clic sur ton boutton. ca te renvoi a une fonction
tes frame doivent avoir (j en suis presque sur) une propriete les rendant invisible ou non, essaye de placer un; unframe.visible = true ou false dans cette fonction d evenement de ton boutton.
petites idees supplementaire (ps: je n ai pas de vs installes sur mon ordi en ce moment donc pour les exemples de code...)
nomenclature le nom de tes frame
dans un modules tu regroupe l ensemble des variables qui seront utilisees tout au long de ton projet.
parmis ces variables:
un tableau nomme tvis par exemple de liste de no frame a afficher (la maniere simple un tableau de string separe par des virgules)
un entier, qui est l etat actuel de ton formulaire
un tableau de frame (pourquoi pas?) tf[1] = monform.frame1 ...
reste ensuite a affecter a un evenement clic a tes bouttons prochain et suivant
ex bt suivant:
dim affiche as boolean
etat = etat + 1 ' - 1 pour precedant
call miseajour
' dans la sub miseajour
for i = 0 to nombreTotalframe
affiche = instr(tvis[etat],"" & i) > 0
mondulevariable.tf[i].visible = affiche
next i
bitshifter
Messages postés61Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention28 mai 20121 1 déc. 2010 à 22:12
En effet, j'utilise des arrays de contrôles, ce qui me permet de faire une fonction simplifiée pour rendre visible ou non en groupe.
Sub Bouton1_Click
fraSelect(1).Visible = TRUE
fraSelect(2).Visible = FALSE
End Sub
Faire l'inverse pour Bouton2_Click.
----------------
richmann
Un chien pense: Ils me nourrissent et me soignent: ils sont des dieux.
Un chat pense: Ils me nourrissent et me soignent: je suis un dieu.
-------------------