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
|