cs_philcam
Messages postés132Date d'inscriptiondimanche 12 août 2001StatutMembreDernière intervention17 octobre 2008
-
21 août 2004 à 17:47
Ze_Dam
Messages postés340Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 7 juillet 2005
-
22 août 2004 à 14:48
Bonjour,
j'aimerais savoir comment charger toutes les forms d'un projet sans connaître leur noms
au lieu de faire
load Form1
load Form2
etc...
Ceci afin de remplir la collection Forms et d'avoir toutes les forms du projet dans la collection (y'a peut-être d'autres méthodes)
Ze_Dam
Messages postés340Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 7 juillet 2005 21 août 2004 à 17:58
d'habitude, on ne charge pas 36 forms différentes, mais quand, dans une grosse application, il y en a pas mal, on n'a jamais à les chargées toutes en même temps (tu ne fais tout de même pas apparaître 100 ^ 100 forms à l'écran... franchement, je ne pense pas que quelqu'un s'est déjà posé une question comme la tienne. Si tu a quand même une raison valable, explique alors.
cs_philcam
Messages postés132Date d'inscriptiondimanche 12 août 2001StatutMembreDernière intervention17 octobre 2008 21 août 2004 à 18:10
je suis en train de me faire un module qui va m'aider à traduire mon prog en plusieurs langues.
Et je suis à un endroit où je dois parcourir toutes les forms du prog pour en voir tous les contrôles.
donc apparement il y a la collection Forms qui regroupe toutes les feuilles chargées en mémoire, mais au début elle est vide, je veux donc charger toutes les forms (4 et non pas 100:) et les décharger juste après (ça c'est pas important même si ça bug car c'est pour moi pas pour l'utilisateur final)
je pourrai faire
load form1
load form2
etc....
Dim CC As Form
For Each CC In Forms
Traduction CC
Next CC
mais ça ne me convient pas de devoir taper les noms des forms à la suite, donc faudrait pouvoir les chargées toutes et la je suis coincé
Ze_Dam
Messages postés340Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 7 juillet 2005 21 août 2004 à 19:29
Bon à la manière For Each on peux charger tous les controles de par exemple, même nom, même index, etc ce qu'on veut quoi mais dans ton exemple tu peux le tester en mode break il ne fera la boucle qu'une fois et chargera juste la form principale donc ca ne te va pas. Cela n'aurait pas été un problème si les forms avaient un index car on aurait pu tous les chargées avec une boucle classique. Alors il y a peut-être une solution mais il me manque un petit truc.
Dim A As Integer
Dim Nom As String
For A = 1 To Nombre de Forms
Nom = "Form" & A
Load Nom
Next A
Problème, il faut pouvoir convertir Nom (string) en Nom(form), mais ca; en vb, je ne sais pas comment faire. En vb.Net, je sais qu'on peut le faire avec CType mais en VB, je n'ai pas trouvé une fonction pour convertir une autre valrible en Form.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_philcam
Messages postés132Date d'inscriptiondimanche 12 août 2001StatutMembreDernière intervention17 octobre 2008 21 août 2004 à 21:14
oui j'étais déjà parti sur cette piste mais transformer un nom de form en form j'ai pas réussi
le prog cherchais le nom des forms dans le fichier vbp, mais après pas moyen de changer une "string" en control.
bref, c'est chaud !
y'a certainement un moyen, même par une autre méthode, mais je suis pas assez expert, je finirai par trouver
Ze_Dam
Messages postés340Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 7 juillet 2005 21 août 2004 à 21:24
je sais le faire en vb.net en plus car la CType permet de changer ce que l'on veut en ce que l'on veut. En vb, les bazars du stype Str ou Val ne servent à rien. J'ai cherché dans l'explorateur d'objects mais je n'ai rien trouvé. Donc en vb.net, ce serait
Nom = CType(Nom, Form)
Et voilà, tout connement, mais en vb, mystère ......... :sad)
Ze_Dam
Messages postés340Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 7 juillet 2005 21 août 2004 à 21:51
lol te tracassais pas je ne cherchais pas ...... j'ai un coup regarder dans l'explorateur d'object dans la broche "conversion" sans résultats aloooors ... bon celà dis même si tu ne trouves pas la réponse, tu n'est pas sans rien : tu peux toujours charger les forms à la classique (chouette alors). qd même, si les forms avait une propriété index, tu n'aurais même pas du poster le moindre message sur le forum.
cs_philcam
Messages postés132Date d'inscriptiondimanche 12 août 2001StatutMembreDernière intervention17 octobre 2008 22 août 2004 à 03:58
j'ai même pensé à créer pendant l'execution un nouveau fichier *.bas avec les : load "form..", mais je pense pas que ça marchera car le *.bas n'est pas déclaré dans le prog
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 22 août 2004 à 13:59
Salut,
Je ne me suis jamais posé la question mais peut-être y a t-il un moyen au niveau de l'Explorateur d'objets de VB.
Il "suffirait" de trouver le contrôle ou l'API qui permet de l'interroger par prog.
En attendant, ta solution avec
Load Form1
Load Form2
...
For Each CC In Forms
Traduction CC
Next CC
me semble la moins prise de tête (surtout si tu n'as que 4 forms).
Cordialement, CanisLupus
Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
Ze_Dam
Messages postés340Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention 7 juillet 2005 22 août 2004 à 14:18
en fait non canislupus tu peux essayer dans un projet vb avec la boucle for ca nemarche pas ! il ne chargera que la form principale et pas les autres ; on le voit bien en mode break
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 22 août 2004 à 14:34
Ze_Dam, sauf si tu mets le code ds le sub main du module principal et que ton app démarre par le sub main.
En VB6, je ne vois pas d'autre solution pour l'instant. Quoique, je pense à l'addin mztools qui permet d'explorer le projet et le code. Il y a peut-être une piste de ce côté, g pas l'adresse mais je crois qu'il y a une source dans ce sens sur le site.
Cordialement, CanisLupus
Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands