Page 1 sur 1

[OK] Passage données tableau structuré en procedure

Publié : mar. 03/mars/2015 7:17
par Ar-S
Salut,

Je ne pige pas pourquoi la procédure RempliChamp() renvoie seulement les données du dernier élément du tableau.
Je m'arrache les cheveux depuis 3 jours.

Avec un code simple du genre ça marche

Code : Tout sélectionner

Structure Client
  Nom.s  
EndStructure  

Global Dim Client.Client(2)

Client(0)\Nom = "AAA"
Client(1)\Nom = "BBB"
Client(2)\Nom = "CCC"

Procedure.s RempliChamp(NumeroElement)
  ProcedureReturn Client(NumeroElement)\Nom
  
EndProcedure


Debug RempliChamp (1)
Mais dans mon code avec plusieurs champs ça foire.

Pour tester.

1 - Cliquer sur un client autre que le dernier
2 - Cliquer sur Modifier

Vous verrez que les champs se remplissent toujours avec les données du dernier.
Peut être un array à mettre quelque part mais là ça me pompe. Je suis sûr que c'est pas grand chose en plus.

Le fichier prefs
Le fichier prefs doit être un fichier texte nommé clients.ldv dans le repertoire du code avec comme contenu
casimir;8 place des nuages 38690 l'ile aux enfants;0606060606;casim@ir.fr;03/2015;60;0;60
toto;11 ch des blagouses 38690 Châbons;0606060606;toto@free.fr;03/2015;60;0;60
popeye;247 chemins des épinards 38690 Bizonnes;0404040404;popop@orange.fr;03/2015;60;0;60

Code : Tout sélectionner

; Gestionnaire de client Team Viewer
; Par Ar-S


; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;-  INITIALISATION
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Enumeration
  #LDVM
  #PREF
  #BT_ADD
  #BT_MOD
  #BT_SUPPR
  #AFF
  #BT_TV
  #BT_VALID
  #BT_ANNULER
  #Panel
  #ListClient
  #TXT_NOM
  #TXT_ADRESSE
  #TXT_TEL
  #TXT_MEL
  #TXT_DATEHA
  #TXT_MIN
  #S_NOM
  #S_ADRESSE
  #S_TEL
  #S_MEL
  #S_DATEHA
  #S_MIN
EndEnumeration

Macro G: Global : EndMacro

G Element
G.s ChemFichier = GetCurrentDirectory()+"clients.ldv"
G.i NbrClients
G.b ETAT_PANEL, Quit
G NewList CL.s()
G NewList CLfull.s()

#PANEL0 = 0
#PANEL1 = 1
#ADDCLIENT = 2
#MODCLIENT = 3

Quit = 0
ETAT_PANEL = #PANEL0

Debug ChemFichier

Structure Client
  Nom.s  
  Adresse.s
  Tel.s
  Mel.s
  DateHA.s
  Min.i
  MinUtil.i
  MinRest.i
EndStructure  

G Dim Client.Client(0)

; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;-  PROCEDURES
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Procedure Open_LDVM()
  If OpenWindow(#LDVM, 390, 44, 615, 601, "CLIENT MANAGER", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    
    ButtonGadget(#BT_ADD, 0, 550, 125, 50, "AJOUTER")
    ButtonGadget(#BT_MOD, 130, 550, 125, 50, "MODIFIER")
    ButtonGadget(#BT_SUPPR, 260, 550, 125, 50, "SUPPRIMER")
    StringGadget(#AFF, 388, 578, 223, 20, "", #PB_String_ReadOnly)
    ButtonGadget(#BT_TV, 388, 550, 223, 25, "Copier l'adresse du client team viewer")
    PanelGadget(#Panel, 0, 0, 613, 546)
    ; Clients
    AddGadgetItem(#Panel, -1, "Clients")
    ListIconGadget(#ListClient, 1, 1, 604, 518, "Client", 475, #PB_ListIcon_FullRowSelect) 
    
    AddGadgetItem(#Panel, -1, "Ajout/Modification de client")
    TextGadget(#TXT_NOM,1,20,150,20,"NOM")
    StringGadget(#S_NOM,160,20,250,20,"")
    TextGadget(#TXT_ADRESSE,1,50,150,20,"ADRESSE")
    StringGadget(#S_ADRESSE,160,50,250,20,"")
    TextGadget(#TXT_TEL,1,80,150,20,"TELEPHONE")
    StringGadget(#S_TEL,160,80,250,20,"")
    TextGadget(#TXT_MEL,1,110,150,20,"E-MAIL")
    StringGadget(#S_MEL,160,110,250,20,"")
    TextGadget(#TXT_DATEHA,1,140,150,20,"DATE D'ACHAT")
    StringGadget(#S_DATEHA,160,140,250,20,"")
    TextGadget(#TXT_MIN,1,170,150,20,"MINUTES")
    StringGadget(#S_MIN,160,170,250,20,"")
    ButtonGadget(#BT_VALID,1,200,603,50,"VALIDER")
    ButtonGadget(#BT_ANNULER,1,252,603,50,"ANNULER")
    CloseGadgetList()
    DisableGadget(#BT_MOD,1)
    DisableGadget(#BT_SUPPR,1)
  Else
    End
  EndIf
EndProcedure

Procedure.i IsPref(fichierPref.s)
  If FileSize(fichierPref.s) > 0
    Debug "Fichier present"
    ProcedureReturn 1
  Else
    ProcedureReturn 0
  EndIf 
EndProcedure


Procedure.i CompteClient()
  If IsPref(ChemFichier.s) = 1
    Compteur = 0
    ReadFile(#Pref, ChemFichier.s) 
    While Eof(#Pref) = 0      
      ReadString(#Pref)
      Compteur+1 
    Wend
    CloseFile(#Pref)
    ProcedureReturn Compteur
  EndIf  
EndProcedure


Procedure LisPref()
  ReadFile(#Pref, ChemFichier.s) 
  While Eof(#Pref) = 0      
    ; Stockage des infos dans le tableau structuré ET creation de la liste avec simplement les Noms pour un affichage plus simple
    ; Le fichier pref est sous la forme : NomClient;AdresseClient;0404040404;mail@mail.com;date d'achat;60
    ligne$ = ReadString(#pref)
    AddElement (CLfull())
    CLfull() = ligne$
    AddElement (CL())
    For i = 0 To NbrClients-1
      Client(i)\Nom = StringField(ligne$, 1, ";")
      CL() = Client(i)\Nom
      Client(i)\Adresse = StringField(ligne$, 2, ";")
      Client(i)\Tel = StringField(ligne$, 3, ";")
      Client(i)\Mel = StringField(ligne$, 4, ";")
      Client(i)\DateHA = StringField(ligne$, 5, ";")
      Client(i)\Min = Val(StringField(ligne$, 6, ";"))
      Client(i)\MinUtil = Val(StringField(ligne$, 7, ";"))
      Client(i)\MinRest = Client(i)\Min - Client(i)\MinUtil 
    Next
        
  Wend
  CloseFile(#Pref) 
EndProcedure

Procedure Initialisation()
  NbrClients = CompteClient()
  ReDim Client(NbrClients-1)
EndProcedure

Procedure AffichClient()
  
  ForEach CL()
    AddGadgetItem(#ListClient, ListIndex(CL() ), CL())    
  Next

EndProcedure

Procedure AddClient()
    Debug "j'ajoute !"
EndProcedure

Procedure ModClient()
    Debug "Je modifie !"
EndProcedure


Procedure DelClient()
  Debug "J'efface !"
EndProcedure


Procedure SavePref()
  If ListSize(CLfull()) > 0
  ;  RenameFile( ChemFichier.s,ChemFichier.s+".bak")
 ;;   OpenFile(#Pref, ChemFichier.s)

Debug "Simulation de la Sauvegarde"     
ForEach CLfull()
      Debug CLfull()
;    WriteStringN(#PREF,CLfull())
  Next
 ; CloseFile(#Pref)
  
  EndIf  
EndProcedure



Procedure.s RempliChamp(NumeroElement)
  Debug "Nom : " + Client(NumeroElement)\Nom + " Numéro : " + NumeroElement
  Debug  Client(5)\Nom
  SetGadgetText(#S_NOM, Client(NumeroElement)\Nom)  
  SetGadgetText(#S_ADRESSE, Client(NumeroElement)\Adresse)
  SetGadgetText(#S_TEL, Client(NumeroElement)\Tel)
  SetGadgetText(#S_MEL, Client(NumeroElement)\Mel)
  SetGadgetText(#S_DATEHA, Client(NumeroElement)\DateHA)
  SetGadgetText(#S_MIN, Str(Client(NumeroElement)\Min))
EndProcedure



; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;-  PROGRAMME
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Initialisation()
LisPref()
Open_LDVM()
AffichClient()
SavePref()

Repeat
  Select WaitWindowEvent()
      ; ///////////////////
    Case #PB_Event_Gadget
      Select EventGadget()
          
        Case #BT_ANNULER  
           SetGadgetState(#Panel,0)
           ETAT_PANEL = #PANEL0
           DisableGadget(#BT_SUPPR,0)
          DisableGadget(#BT_ADD,0)
          DisableGadget(#BT_MOD,0)
          
          ;- Ouverture panel pour AJOUTER un client
        Case #BT_ADD
          SetGadgetState(#Panel,1)
          ETAT_PANEL = #ADDCLIENT
          For i = #S_NOM To #S_MIN
              SetGadgetText(i,"")
          Next  
          DisableGadget(#BT_SUPPR,1)
          DisableGadget(#BT_ADD,1)
          DisableGadget(#BT_MOD,1)
          
          ;- Ouverture panel pour MODIFIER un client
        Case #BT_MOD
          ETAT_PANEL = #MODCLIENT
           SetGadgetState(#Panel,1) 
           DisableGadget(#BT_SUPPR,1)
           DisableGadget(#BT_ADD,1)
           DisableGadget(#BT_MOD,1)
           
        Case #BT_SUPPR
        Case #AFF
          
          ;- VALIDER AJOUT ou MODIFICATION client
        Case #BT_VALID
          If ETAT_PANEL = #ADDCLIENT
          AddClient()
        ElseIf ETAT_PANEL = #MODCLIENT
          ModClient()
          EndIf
          
          
        Case #BT_TV
        ;- / Panel  
        Case #Panel
          Select EventType()
            Case #PB_EventType_Change
              NumPanel = GetGadgetState(#Panel)
              If NumPanel = 1 And ETAT_PANEL = #PANEL0
                SetGadgetState(#Panel,0) 
                MessageRequester("Information","Vous devez choisir de modifier/ajouter un contacte pour accéder à cet onglet",#PB_MessageRequester_Ok|#MB_ICONINFORMATION)
              ElseIf ETAT_PANEL = #PANEL1 Or ETAT_PANEL = #ADDCLIENT Or ETAT_PANEL = #MODCLIENT
                SetGadgetState(#Panel,1) 
                MessageRequester("Information","Vous devez valider ou annuler l'opération en cours",#PB_MessageRequester_Ok|#MB_ICONINFORMATION)
              EndIf
          EndSelect
          
          ;- / ListClient
        Case #ListClient 
          Select EventType()
            Case  #PB_EventType_LeftClick
              Element = GetGadgetState(#ListClient)
              If Element > -1
                SelectElement(CL(),Element)
                Debug Element
                RempliChamp(Element)
  
                SetGadgetText (#aff, CL() )
                DisableGadget(#BT_MOD,0)
                DisableGadget(#BT_SUPPR,0)
              Else
                SetGadgetText (#aff, "" )
                DisableGadget(#BT_MOD,1)
                DisableGadget(#BT_SUPPR,1)
              EndIf  
          EndSelect
      EndSelect
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #LDVM
          Quit = 1
          
      EndSelect
  EndSelect
Until Quit = 1


SavePref()
CloseWindow(#LDVM)

End
Merci pour votre aide

Re: Passage données tableau structuré en procedure

Publié : mar. 03/mars/2015 8:59
par Marc56
Solution plus simple trouvée par Micoute, donc j'enlève mon truc illisible :mrgreen:

Re: Passage données tableau structuré en procedure

Publié : mar. 03/mars/2015 9:14
par Micoute
Bonjour Ar-s, ton erreur est à la ligne 138, car ta variable ligne$ reste toujours à la même valeur ! J'ai même remarqué qu'elle changeait de valeur à chaque réitération !

voici le logiciel corrigé, j'ai juste déplacé la boucle pour la variable ligne$ soit prise en compte à chaque itération.

Code : Tout sélectionner

; Gestionnaire de client Team Viewer
; Par Ar-S


; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;-  INITIALISATION
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Enumeration
  #LDVM
  #PREF
  #BT_ADD
  #BT_MOD
  #BT_SUPPR
  #AFF
  #BT_TV
  #BT_VALID
  #BT_ANNULER
  #Panel
  #ListClient
  #TXT_NOM
  #TXT_ADRESSE
  #TXT_TEL
  #TXT_MEL
  #TXT_DATEHA
  #TXT_MIN
  #S_NOM
  #S_ADRESSE
  #S_TEL
  #S_MEL
  #S_DATEHA
  #S_MIN
EndEnumeration

Macro G : Global : EndMacro

G Element
G.s ChemFichier = GetCurrentDirectory()+"clients.ldv"
G.i NbrClients
G.b ETAT_PANEL, Quit
G NewList CL.s()
G NewList CLfull.s()

#PANEL0 = 0
#PANEL1 = 1
#ADDCLIENT = 2
#MODCLIENT = 3

Quit = 0
ETAT_PANEL = #PANEL0

Debug ChemFichier

Structure Client
  Nom.s
  Adresse.s
  Tel.s
  Mel.s
  DateHA.s
  Min.i
  MinUtil.i
  MinRest.i
EndStructure

G Dim Client.Client(0)

; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;-  PROCEDURES
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Procedure Open_LDVM()
  If OpenWindow(#LDVM, 390, 44, 615, 601, "CLIENT MANAGER", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    
    ButtonGadget(#BT_ADD, 0, 550, 125, 50, "AJOUTER")
    ButtonGadget(#BT_MOD, 130, 550, 125, 50, "MODIFIER")
    ButtonGadget(#BT_SUPPR, 260, 550, 125, 50, "SUPPRIMER")
    StringGadget(#AFF, 388, 578, 223, 20, "", #PB_String_ReadOnly)
    ButtonGadget(#BT_TV, 388, 550, 223, 25, "Copier l'adresse du client team viewer")
    PanelGadget(#Panel, 0, 0, 613, 546)
    ; Clients
    AddGadgetItem(#Panel, -1, "Clients")
    ListIconGadget(#ListClient, 1, 1, 604, 518, "Client", 475, #PB_ListIcon_FullRowSelect)
    
    AddGadgetItem(#Panel, -1, "Ajout/Modification de client")
    TextGadget(#TXT_NOM, 1, 20, 150, 20, "NOM")
    StringGadget(#S_NOM, 160, 20, 250, 20, "")
    TextGadget(#TXT_ADRESSE, 1, 50, 150, 20, "ADRESSE")
    StringGadget(#S_ADRESSE, 160, 50, 250, 20, "")
    TextGadget(#TXT_TEL, 1, 80, 150, 20, "TELEPHONE")
    StringGadget(#S_TEL, 160, 80, 250, 20, "")
    TextGadget(#TXT_MEL, 1, 110, 150, 20, "E-MAIL")
    StringGadget(#S_MEL, 160, 110, 250, 20, "")
    TextGadget(#TXT_DATEHA, 1, 140, 150, 20, "DATE D'ACHAT")
    StringGadget(#S_DATEHA, 160, 140, 250, 20, "")
    TextGadget(#TXT_MIN, 1, 170, 150, 20, "MINUTES")
    StringGadget(#S_MIN, 160, 170, 250, 20, "")
    ButtonGadget(#BT_VALID, 1, 200, 603, 50, "VALIDER")
    ButtonGadget(#BT_ANNULER, 1, 252, 603, 50, "ANNULER")
    CloseGadgetList()
    DisableGadget(#BT_MOD, 1)
    DisableGadget(#BT_SUPPR, 1)
  Else
    End
  EndIf
EndProcedure

Procedure.i IsPref(fichierPref.s)
  If FileSize(fichierPref.s) > 0
    Debug "Fichier present"
    ProcedureReturn 1
  Else
    ProcedureReturn 0
  EndIf
EndProcedure


Procedure.i CompteClient()
  If IsPref(ChemFichier.s) = 1
    Compteur = 0
    ReadFile(#Pref, ChemFichier.s)
    While Eof(#Pref) = 0
      ReadString(#Pref)
      Compteur+1
    Wend
    CloseFile(#Pref)
    ProcedureReturn Compteur
  EndIf
EndProcedure


Procedure LisPref()
  ReadFile(#Pref, ChemFichier.s)
  While Eof(#Pref) = 0
    ; Stockage des infos dans le tableau structuré ET creation de la liste avec simplement les Noms pour un affichage plus simple
    ; Le fichier pref est sous la forme : NomClient;AdresseClient;0404040404;mail@mail.com;date d'achat;60
    For i = 0 To NbrClients-1
    ligne$ = ReadString(#pref)
    AddElement (CLfull())
    CLfull() = ligne$
    AddElement (CL())
      Client(i)\Nom = StringField(ligne$, 1, ";")
      CL() = Client(i)\Nom
      Client(i)\Adresse = StringField(ligne$, 2, ";")
      Client(i)\Tel = StringField(ligne$, 3, ";")
      Client(i)\Mel = StringField(ligne$, 4, ";")
      Client(i)\DateHA = StringField(ligne$, 5, ";")
      Client(i)\Min = Val(StringField(ligne$, 6, ";"))
      Client(i)\MinUtil = Val(StringField(ligne$, 7, ";"))
      Client(i)\MinRest = Client(i)\Min - Client(i)\MinUtil
    Next
    
  Wend
  CloseFile(#Pref)
EndProcedure

Procedure Initialisation()
  NbrClients = CompteClient()
  ReDim Client(NbrClients-1)
EndProcedure

Procedure AffichClient()
  
  ForEach CL()
    AddGadgetItem(#ListClient, ListIndex(CL() ), CL())
  Next
  
EndProcedure

Procedure AddClient()
  Debug "j'ajoute !"
EndProcedure

Procedure ModClient()
  Debug "Je modifie !"
EndProcedure


Procedure DelClient()
  Debug "J'efface !"
EndProcedure


Procedure SavePref()
  If ListSize(CLfull()) > 0
    ;  RenameFile( ChemFichier.s,ChemFichier.s+".bak")
    ;;   OpenFile(#Pref, ChemFichier.s)
    
    Debug "Simulation de la Sauvegarde"
    ForEach CLfull()
      Debug CLfull()
      ;    WriteStringN(#PREF,CLfull())
    Next
    ; CloseFile(#Pref)
    
  EndIf
EndProcedure



Procedure.s RempliChamp(NumeroElement)
  Debug "Nom : " + Client(NumeroElement)\Nom + " Numéro : " + NumeroElement
  ;Debug  Client(5)\Nom
  SetGadgetText(#S_NOM, Client(NumeroElement)\Nom)
  SetGadgetText(#S_ADRESSE, Client(NumeroElement)\Adresse)
  SetGadgetText(#S_TEL, Client(NumeroElement)\Tel)
  SetGadgetText(#S_MEL, Client(NumeroElement)\Mel)
  SetGadgetText(#S_DATEHA, Client(NumeroElement)\DateHA)
  SetGadgetText(#S_MIN, Str(Client(NumeroElement)\Min))
EndProcedure



; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;-  PROGRAMME
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Initialisation()
LisPref()
Open_LDVM()
AffichClient()
SavePref()

Repeat
  Select WaitWindowEvent()
      ; ///////////////////
    Case #PB_Event_Gadget
      Select EventGadget()
          
        Case #BT_ANNULER
          SetGadgetState(#Panel, 0)
          ETAT_PANEL = #PANEL0
          DisableGadget(#BT_SUPPR, 0)
          DisableGadget(#BT_ADD, 0)
          DisableGadget(#BT_MOD, 0)
          
          ;- Ouverture panel pour AJOUTER un client
        Case #BT_ADD
          SetGadgetState(#Panel, 1)
          ETAT_PANEL = #ADDCLIENT
          For i = #S_NOM To #S_MIN
            SetGadgetText(i, "")
          Next
          DisableGadget(#BT_SUPPR, 1)
          DisableGadget(#BT_ADD, 1)
          DisableGadget(#BT_MOD, 1)
          
          ;- Ouverture panel pour MODIFIER un client
        Case #BT_MOD
          ETAT_PANEL = #MODCLIENT
          SetGadgetState(#Panel, 1)
          DisableGadget(#BT_SUPPR, 1)
          DisableGadget(#BT_ADD, 1)
          DisableGadget(#BT_MOD, 1)
          
        Case #BT_SUPPR
        Case #AFF
          
          ;- VALIDER AJOUT ou MODIFICATION client
        Case #BT_VALID
          If ETAT_PANEL = #ADDCLIENT
            AddClient()
          ElseIf ETAT_PANEL = #MODCLIENT
            ModClient()
          EndIf
          
          
        Case #BT_TV
          ;- / Panel
        Case #Panel
          Select EventType()
            Case #PB_EventType_Change
              NumPanel = GetGadgetState(#Panel)
              If NumPanel = 1 And ETAT_PANEL = #PANEL0
                SetGadgetState(#Panel, 0)
                MessageRequester("Information", "Vous devez choisir de modifier/ajouter un contacte pour accéder à cet onglet", #PB_MessageRequester_Ok|#MB_ICONINFORMATION)
              ElseIf ETAT_PANEL = #PANEL1 Or ETAT_PANEL = #ADDCLIENT Or ETAT_PANEL = #MODCLIENT
                SetGadgetState(#Panel, 1)
                MessageRequester("Information", "Vous devez valider ou annuler l'opération en cours", #PB_MessageRequester_Ok|#MB_ICONINFORMATION)
              EndIf
          EndSelect
          
          ;- / ListClient
        Case #ListClient
          Select EventType()
            Case  #PB_EventType_LeftClick
              Element = GetGadgetState(#ListClient)
              If Element > -1
                SelectElement(CL(), Element)
                Debug Element
                RempliChamp(Element)
                
                SetGadgetText (#aff, CL())
                DisableGadget(#BT_MOD, 0)
                DisableGadget(#BT_SUPPR, 0)
              Else
                SetGadgetText (#aff, "")
                DisableGadget(#BT_MOD, 1)
                DisableGadget(#BT_SUPPR, 1)
              EndIf
          EndSelect
      EndSelect
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #LDVM
          Quit = 1
          
      EndSelect
  EndSelect
Until Quit = 1


SavePref()
CloseWindow(#LDVM)

End

Re: Passage données tableau structuré en procedure

Publié : mar. 03/mars/2015 13:59
par Ar-S
Bien joué mon brave Micoute.
Un regard neuf fait souvent du bien pour ce genre de connerie.
Merci pour ce décoinçage. 8)

Re: [OK] Passage données tableau structuré en procedure

Publié : mar. 03/mars/2015 14:47
par Micoute
De rien mon cher Ar-s, les forums c'est fait pour ça !