Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2027 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  utilisation d'un tabStrip

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utilisation d'un tabStrip

n°966806
tigrou lib​re
Posté le 31-01-2005 à 14:53:16  profilanswer
 

bonjour,
j'ai un probleme avec l'utilisation de mon tabStrip.  
j'explique un peu mon programme: mon prog est censé, a partir d'un fichier texte, créer un onglet puis une frame puis un text et un label!
le tout est créer dynamiquement!  
pour l'instant j'ai pas de probleme!
ensuite dans mon tabstrip_click (fonction pour changer d'onglet) j'ai un probleme pour identifier les objects et les afficher ou les cacher!
 
voici mon code :  

Option Explicit
Option Compare Text
Option Base 1
Private Const ESPACE = 400
Private Const LABELLARGEUR = 1600
Private Const LABELHAUTEUR = 285
Private Const TEXTLARGEUR = 600
 
Private Sub Form_Load()
Dim BclErreur As Long
Dim Ferr As ferreur
Dim nomfile As String
Dim tableauText() As Object
Dim tableauFrame() As Object
Dim tableauLabel() As Object
  nomfile = App.Path & IIf(Right(App.Path, 1) <> "\", "\", "" ) & "param\affichage.txt"
  lecturefichierconf nomfile, Onglet, tableauFrame(), tableauText(), tableauLabel()
 
  Exit Sub
gesterreur:
  Select Case Err.Number
    Case Else
      Set Ferr = New ferreur
      Ferr.Afficherreur Err.Number, Err.Description, App.Title & ":Application.Form_Load", BclErreur
  End Select
  Err.Clear
  BclErreur = BclErreur + 1
  If BclErreur >= 3 Then Exit Sub
  Resume Next
End Sub
 
 
Private Sub lecturefichierconf(nomfichier As String, Onglet As TabStrip, tabFrame() As Object, _
  tabTexte() As Object, tabLabel() As Object)
Dim param As String
Dim Decoup() As String
Dim i As Integer
Dim hauteur As Integer, largeur As Integer, gauche As Integer
Dim NbOnglet As Integer, nbLabelText() As Variant, NbFrame() As Integer, ArrayLabel() As Integer
Dim nTopFrame() As Integer, nLeftFrame As Integer, nTopLabel As Integer
Dim indexOnglet As Integer, indexFrame As Integer, indexText As Integer
Dim BclErreur As Long
Dim Ferr As ferreur
 
nLeftFrame = 200
gauche = nLeftFrame
largeur = Onglet.Width - 400
hauteur = 0
  On Error GoTo gesterreur
  Open nomfichier For Input As #1
  Do While Not EOF(1)
    Line Input #1, param
    param = Trim(param)
    If Left(param, 1) <> "'" Then
      If InStr(1, param, "=" ) > 1 Then
        Decoup = Split(param, "=" )
        If (Trim(Decoup(0)) = "NOM_ONGLET" ) Then
          Onglet.Tabs.Add
          NbOnglet = Onglet.Tabs.Count
          Onglet.Tabs(NbOnglet).Caption = Trim(Decoup(1))
          indexOnglet = Onglet.SelectedItem.Index
          ReDim Preserve NbFrame(NbOnglet)
          ReDim Preserve nbLabelText(NbOnglet)
        ElseIf (Trim(Decoup(0)) = "NOM_FRAME" ) Then
          NbFrame(NbOnglet) = NbFrame(NbOnglet) + 1
          ReDim Preserve tabFrame(NbFrame(NbOnglet))
          ReDim nTopFrame(NbFrame(NbOnglet))
          If IsObject(Application.Controls) Then
            Set tabFrame(NbFrame(NbOnglet)) = Application.Controls.Add( _
                                "VB.Frame", "Frame" & NbOnglet & NbFrame(NbOnglet))
          End If
          If Not tabFrame(NbFrame(NbOnglet)) Is Nothing Then
            tabFrame(NbFrame(NbOnglet)).Left = nLeftFrame
            tabFrame(NbFrame(NbOnglet)).Caption = Decoup(1)
            tabFrame(NbFrame(NbOnglet)).Width = largeur
            hauteur = ((Onglet.Height - ESPACE * 2) - (NbFrame(NbOnglet) - 1) * 400) / NbFrame(NbOnglet)
            For i = 1 To NbFrame(NbOnglet) Step 1
              nTopFrame(i) = ESPACE + (hauteur + ESPACE) * (i - 1)
              tabFrame(i).Top = nTopFrame(i)
              tabFrame(i).Height = hauteur
            Next i
            tabFrame(NbFrame(NbOnglet)).Visible = True
            tabFrame(NbFrame(NbOnglet)).ZOrder
          End If
          ReDim Preserve ArrayLabel(NbFrame(NbOnglet))
          nbLabelText(NbOnglet) = ArrayLabel()
          nTopLabel = 240
        ElseIf (Trim(Decoup(0)) = "NOM_PARAM" ) Then
          nbLabelText(NbOnglet)(NbFrame(NbOnglet)) = nbLabelText(NbOnglet)(NbFrame(NbOnglet)) + 1
          ReDim tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet)))
          ReDim tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet)))
          If IsObject(Application.Controls) Then
            Set tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))) = Application.Controls.Add("VB.Label", "label" & NbOnglet & NbFrame(NbOnglet) & nbLabelText(NbOnglet)(NbFrame(NbOnglet)))
            Set tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))) = Application.Controls.Add("VB.Textbox", "text" & NbOnglet & NbFrame(NbOnglet) & nbLabelText(NbOnglet)(NbFrame(NbOnglet)))
            'remplacer les nom du control par les valeurs à lire
          End If
          If Not tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))) Is Nothing Then
            tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Top = nTopLabel + 50
            tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Left = gauche
            tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Width = LABELLARGEUR
            tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Height = LABELHAUTEUR
            tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Caption = Decoup(1)
            tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Visible = True
          End If
          If Not tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))) Is Nothing Then
            tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Top = nTopLabel
            tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Left = gauche + LABELLARGEUR
            tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Width = TEXTLARGEUR
            tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Height = LABELHAUTEUR
            tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Text = Decoup(2) 'ObtenirMRS(trim(decoup(2))
            tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Visible = True
          End If
          nTopLabel = nTopLabel + LABELHAUTEUR
          If nTopLabel > (tabFrame(NbFrame(NbOnglet)).Height - LABELHAUTEUR) Then
            nTopLabel = 240
            gauche = (gauche + LABELLARGEUR + TEXTLARGEUR) + 400
          End If
          Set tabTexte(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Container = tabFrame(NbFrame(NbOnglet))
          Set tabLabel(nbLabelText(NbOnglet)(NbFrame(NbOnglet))).Container = tabFrame(NbFrame(NbOnglet))
        End If
      End If
    End If
  Loop
  Close #1
End Sub
 
Private Sub Onglet_Click()
Dim i As Integer
Dim IdSelectOng As Integer
IdSelectOng = Onglet.SelectedItem.Index
tabFrame(IdSelectOng).ZOrder 0
   
  'If i = IdSelectOng Then
  '  tableauFrame(i).Visible = True
  'End If
   
Next i
 
End Sub


 
 
merci

mood
Publicité
Posté le 31-01-2005 à 14:53:16  profilanswer
 

n°966808
tigrou lib​re
Posté le 31-01-2005 à 14:56:14  profilanswer
 

j'ai trouvé une piste...  
mes tableaux de frame text et onglet n'etait pas déclaré en global! je sais ça prend de la place mais bon ....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  utilisation d'un tabStrip

 

Sujets relatifs
[ansi] utilisation de types ou structures définis ailleurs ...[Java] Utilisation en multiprocesseur
Utilisation de Group ByUtilisation mémoire importante
Utilisation de dreamweaver....références, utilisation de sendAndLoad dans un constructeur
Utilisation de sql en php + problème phpUtilisation fonction md5crypt (ou crypter en md5 unix)
[Java] Utilisation d'un vecteur d'objetsUtilisation de TabStrip [Résolu]
Plus de sujets relatifs à : utilisation d'un tabStrip


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR