Ajout d'élément dans un onglet

cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005 - 18 janv. 2005 à 23:34
cs_Obi_1 Messages postés 21 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 13 juin 2006 - 26 août 2005 à 09:10
Bonjour

Je vous explique mon problème :

je creer un SStab de 3 onglets.
dans form_load je creer des bouton dynamiquement et je les places dans ma sstab... le problème c'est qu'ils sont placés dans le 1er onglet!
comment je peux faire pour les mettres dans un autre onglet?

je vous laisse le bout de code :
Load ordi(i)
Y = (i - 1) * 1100 + 100 + 500
Set ordi(i).Container = SSTab1
ordi(i).Move 200, Y, 800, 800
ordi(i).Visible = True
ordi(i).Caption = ""
ordi(i).Picture = LoadPicture("d:\IUP\IHM\images\boitier.bmp")

merci de votre aide!

11 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 janv. 2005 à 00:17
c'est avant de créer le Bouton qu'il faut sélectionner l'onglet.
exemple pour créer un Bouton dans chaque onglet:

For i = 1 To 3
SSTab1.Tab = i - 1
Load ordi(i)
Set ordi(i).Container = SSTab1
ordi(i).Move 500, 500
ordi(i).Caption = i
ordi(i).Visible = True
Next

Daniel
0
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
19 janv. 2005 à 13:28
merci de ta reponse mais ca ne marche pas... il me met toujours tous les éléments que j'ajoute dans l'onglet selectionner lors de l'execution du programme
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 janv. 2005 à 14:16
c'est ce que j'ai dis dans l'onglet sélectionné
je pense que tu as voulu dire toujours dans le premier onglet
ça c'est impossible parce que quand tu sélectionnes un onglet tous les éléments des autres onglets sont toujours là mais simplement cachés (propriété Left négative)
bien faire les instructions dans l'ordre:
- sélection de l'onglet
- création de l'objet
- Set pour le container
- le Move après

Daniel
0
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
19 janv. 2005 à 14:29
non ce que j'ai voulu dire c'est qu'il me met les éléments dans l'onglet selectionner AVANT le lancement du programme, mannuellement qd je fais ma sstab, je me met sur longlet 2, les éléments seront sur cet onglet.
En faisant comme vous avez dis c'est pareil, je fais bien les opérations dans cette ordre mais ca ne change pas. Il met les éléments dans longlet du départ
0

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

Posez votre question
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
19 janv. 2005 à 14:54
je donne le code :

For j = 1 To 3
SSTab1.Tab = j - 1
If (j = 2) Then
For i = 1 To nbordi
If (i = 1) Then
Y = 600
Else
Y = (i - 1) * 1100 + 100 + 500
End If
Load ordi(i)
SSTab1.Tab = 0
Set ordi(i).Container = SSTab1
ordi(i).Move 200, Y, 800, 800
ordi(i).Visible = True
ordi(i).Caption = ""
ordi(i).Picture = LoadPicture("d:\IUP\IHM\images\boitier.bmp")
Set nompc = Controls.Add("vb.textbox", tabOrdi(i - 1, 0))
Set nompc.Container = SSTab1
With nompc
.Visible = True
.Top = Y
.Left = 1100
.Text = tabOrdi(i - 1, 0)
End With
Next

normalement il devrait me mettre les élémens dans le 2eme onglet mais il me les met dans le 1er.

Aidez moi svp
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 janv. 2005 à 14:54
si je récapitule :
l'onglet au lancement du programme est à zéro,
ensuite je me positionne sur l'onglet 1 ou 2 ...
là j'ai un doûte, les onglets commence à zéro, donc tu as 3 onglets: 0, 1 et 2
je lance la création (je sais pas par quel évênement, un bouton ? )
pas besoin de faire SStab1.Tab = 2 puisqu'il est déjà sélectionné
la création se fait obligatoirement dans l'onglet 2
vérifie par un MsgBox juste après la création, les objects doivent être visibles et dans le bon onglet.

Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 janv. 2005 à 15:08
<STRIKE>For j = 1 To 3</STRIKE>
SSTab1.Tab = 1
<STRIKE>If (j = 2) Then</STRIKE>
For i = 1 To nbordi
If (i = 1) Then
Y = 600
Else
Y = (i - 1) * 1100 + 100 + 500
End If
Load ordi(i)
<STRIKE>SSTab1.Tab = 0
</STRIKE> Set ordi(i).Container = SSTab1
ordi(i).Move 200, Y, 800, 800
ordi(i).Visible = True
ordi(i).Caption = ""
ordi(i).Picture = LoadPicture("d:\IUP\IHM\images\boitier.bmp")
Set nompc = Controls.Add("vb.textbox", tabOrdi(i - 1, 0))
Set nompc.Container = SSTab1
With nompc
.Visible = True
.Top = Y
.Left = 1100
.Text = tabOrdi(i - 1, 0)
End With
Next i

Daniel
0
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
19 janv. 2005 à 15:08
au faite avant de lancer le programme je selectionne l'onglet 2 du sstab.
donc l'onglet au lancement est a 1

je lance le programme
je me positionne dans l'onglet 0
je lance la creation dabord de bouton ensuite de textbox ( en faisant le container et le move)

et la mes élément sont creer dans longlet 1 (celui au lancement)
je remet le code car celui en haut n'etai pas lebon :

For j = 0 To 2
SSTab1.Tab = j
If (j = 0) Then
Load ordi(i)
Set ordi(i).Container = SSTab1
ordi(i).Move 200, Y, 800, 800
ordi(i).Visible = True
else if (j = 1) then
Load peri(i)
Set peri(i).Container = SSTab1
peri(i).Move 200, Y, 800, 800
peri(i).Visible = True
end if
end if
next

voila... et la ca ne marche pas
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
19 janv. 2005 à 15:44
je vois pas la boucle For i = ...
moi j'aurais fais les créations onglet par onglet

SSTab1.Tab = 0
For i = 1 To nbordi
Y = (i - 1) * 1100 + 100 + 500
Load ordi(i)
Set ordi(i).Container = SSTab1
ordi(i).Move 200, Y, 800, 800
ordi(i).Visible = True
Next
SSTab1.Tab = 1
For i = 1 To nbordi
Y = (i - 1) * 1100 + 100 + 500
Load peri(i)
Set peri(i).Container = SSTab1
peri(i).Move 200, Y, 800, 800
peri(i).Visible = True
Next

Daniel
0
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
19 janv. 2005 à 16:16
bah meme comme ca ca marche pas

je sais plus quoi faire ca m'enerve
0
cs_Obi_1 Messages postés 21 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 13 juin 2006
26 août 2005 à 09:10
Bonjour,

J'ai le même problème que toi HZ, j'aimerais savoir si tu as trouvé le moyen de surmonter la difficulté, ou bien si quelqu'un a une solution...Je créé 3 onglets sur un SSTab, et j'aimerais ajouter une MSHFlexGrid sur chaque onglet. Pour controler les résultats, je renomme chaque onglet avec ma variable de boucle (j), et je mets aussi cette valeur j directement dans le MSHFlexGrid.
Le résultat me parait bizarre, puisque les onglets sont bien renommés, mais la Grid reste dans le premier onglet (d' indice 0)...

Si quelqu'un pouvait me dire pourquoi, ca m'aiderait beaucoup!

Pour référence, voilà mon code:

Me.SSTab1.Tabs = 3
For j = 1 To 3
Me.SSTab1.Tab = j - 1
Me.SSTab1.Caption = j
If j > 1 Then Load MyGrid(j)
With MyGrid(j)
Set .Container = Me.SSTab1
.Left = MyGrid(1).Left
.Top = MyGrid(1).Top
.Visible = True
.Row = 1
.Col = 1
.Text = j
End With
Next
0
Rejoignez-nous