cs_HZ
Messages postés21Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention20 janvier 2005
-
18 janv. 2005 à 23:34
cs_Obi_1
Messages postés21Date d'inscriptionsamedi 28 mai 2005StatutMembreDernière intervention13 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")
cs_HZ
Messages postés21Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention20 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
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 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
cs_HZ
Messages postés21Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention20 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_HZ
Messages postés21Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention20 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.
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 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.
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 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
cs_HZ
Messages postés21Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention20 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
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 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
cs_Obi_1
Messages postés21Date d'inscriptionsamedi 28 mai 2005StatutMembreDernière intervention13 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