Plusieurs instances de la meme form

yass235 Messages postés 2 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 25 décembre 2005 - 22 déc. 2005 à 19:22
yass235 Messages postés 2 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 25 décembre 2005 - 25 déc. 2005 à 20:53
Message :
salut tt le monde voila, le pb que j'ai c'est que je veux créer plusieurs form depuis une form modéle,j'ai essayé :dim frm1 as new frm
sauf que le problem c'est que je ne connais pas le nombre de form que je dois declarer au debut je veux que ca soit dynamique chaque fois que je clique sur un boutton je crée une form/*merci d'avance*/

yass235

7 réponses

Utilisateur anonyme
22 déc. 2005 à 19:45
Bonjour,

Example de tableau dynamique

Dim TabForm() As Form
Dim NbForm As Integer

Private Sub Button_Click()
Dim frm As New Form1

ReDim Preserve TabForm(NbForm)
Set TabForm(NbForm) = frm
NbForm = NbForm + 1

frm.Show
End Sub

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 déc. 2005 à 19:48
Salut
La méthode est presque bonne.
Il suffit de lui attribuer un Index pour que ce soit complet.
Un exemple dans un projet composé de Form1 avec un bouton Command1 et Form2 qu'on va dupliquer :

Option Explicit


Dim Formes() As Form2
Dim monIndex As Integer


Private Sub Form_Load()
monIndex = 0
End Sub


Private Sub Command1_Click()
ReDim Preserve Formes(monIndex)
Set Formes(monIndex) = New Form2
Formes(monIndex).Show
monIndex = monIndex + 1
End Sub


Le New se met au moment du Set, pas du Dim

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 déc. 2005 à 19:53
Charles :
Compliqué de faire un tableau avec une instance indirecte (de frm).
A mon avis, ça ne sert à rien si on dimensionne le tableau directement 'As Form2'.
0
Utilisateur anonyme
22 déc. 2005 à 20:19
Oui, tu a tout à fait raison, je n'y avais pas pensé.

De plus, pour vb6 (que je ne pratique plus trop à cause du .net), il ne faut pas remettre le type quand on fait un Redim ?

Private Sub Command1_Click()
ReDim Preserve Formes(monIndex) As Form2
Set Formes(monIndex) = New Form2
Formes(monIndex).Show
monIndex = monIndex + 1
End Sub

Kenji
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 déc. 2005 à 01:09
Ce n'est pas obligatoire.
Tu ne fais que toucher à la quantité mémoire, mais pas au type, donc c'est sous-entendu.
Ta syntaxe est plus complète.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
23 déc. 2005 à 22:42
Bonsoir,



Private Sub Command1_Click()

Dim intX As Integer

Dim frmNew(1 To 1) As New Form1

For intX = 1 To 1

frmNew(intX).Show

frmNew(intX).WindowState = vbMinimized

' Pour créer des feuilles en taille réduite

' sans qu'elles soient d'abord brièvement

' affichées en taille normale, inversez

' l'ordre des deux lignes précédentes.

Next

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
0
yass235 Messages postés 2 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 25 décembre 2005
25 déc. 2005 à 20:53
merci tt le monde pour vos reponses mais au fait j'ai essayé un truc et ca marché par % a mon application c'est que je suis entrain de concvoir une application de chat et j'ai pu identifié les forms par % a leur caption
Load New Frm_chat
For Each f In Forms
If f.Caption = "" Then
f.Show
End If
Next

yass235
0
Rejoignez-nous