cs_zarkor
Messages postés19Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention19 août 2006
-
19 août 2006 à 14:37
cs_zarkor
Messages postés19Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention19 août 2006
-
19 août 2006 à 15:10
Voila j'utilise le code suivant pour dupliquer et indexer une form :
Dim Form() as Form1
dim i as integer
redim Form(1 to 10) as form1
set Form(i) = new form1
Form(i).caption = Titre (i)
Form(i).show
Le truc c'est que si par exemple la form(3) existe déja quand je demande de la créer, il en créé une nouvelle et je ne peux plus controler l'ancienne en utilisant form(3).
En gros ma question c'est comment vérifier l'existance d'un form avant de la créer?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 19 août 2006 à 15:04
C'est ce que je te disait, dans le cas de cet exemple, le tableau ne sert à rien.
Si tu met ce code tel quel dans une procédure, le tableau est recréer et redimentionné à chaque appel de la procédure. A la fin de la procédure, il est automatiquement détruit, et tu perd donc les références sur tes fenetres.
Au premier appel, tu crée la form n°1. A la fin de la procedure, tu perd la référence à cette form. Donc au second appel, ton tableau venant d'etre créé, est parfaitement vierge. Tu vas donc créer une "seconde" form n°1.
Il faudrait que tu déclare ton tableau en variable globale, que tu le dimentionne 1 seule fois dans une phase d'initialisation voire directement à la déclaration.
Ensuite dans la procedure que tu appele pour créer les forms, tu ne garde que ce qui est entre le If et le End If
Sevyc64 (alias Casy)
<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 19 août 2006 à 14:49
Déjà, tu peux essayer comme ça
Dim Form() as Form1
dim i as integer
redim Form(1 to 10) as form1
If Form(i) Is Nothing Then
set Form(i) = new form1
Form(i).caption = Titre (i)
Form(i).show
end if
Et au passage, je sais pas si le code que tu donne est juste un exemple, mais tu risque d'avoir un problème d'indices. Deplus ton tableau ne sert à rien dans ce cas là.
Sevyc64 (alias Casy)
<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_zarkor
Messages postés19Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention19 août 2006 19 août 2006 à 14:53
Non c'est juste un exemple, je remplace le i par une valeur quelquonque.
Bon sinon le test If Form(i) Is Nothing Then est accepté (pas de message d'erreur)
par contre ça ne marche pas, si je lui redemande d'ouvrir une fenetre avec le meme indice, il me l'ouvre quand même.
Merci quand même
Vous n’avez pas trouvé la réponse que vous recherchez ?