Bonjour,
Je ne sais pas si cela peut t'aider... Mais voici un bout de code qui fonctionne.
Il présente une Structure... La rend Globale et comme on le voit la structure étant globale,
pas besoin de la passer en paramètre
Il y a affichage dans la procédure ... Modification et affectation d'une variable interne "test"
qui est renvoyé elle à l'appelant dans "Reponse".
En principe tout cela existe sous forme d'exemples dans les "
Tutos" organisé et présenté par Dobro.
Code : Tout sélectionner
;
; LA structure de départ ....
;
Structure Machin ; Nom de la structure Decallage |Octeds
Nom.s ; Chaine (String) Offset = 0 (4)
Age.w ; Un mots Offset = 4 (4 bytes pour décrire Nom.s donc 0+4= 4 )| (2)
RueEtNumero.s ; Une chaine Offset = 6 (2 bytes pour Un.w donc 4+2= 6 )| (4)
CodePerso.Q ; Un quad Offset = 10 (4 bytes pour RueEtNumero donc 6+4=10 )| (8)
CodePostal.l ; EntierLong Offset = 18 (8 bytes pour un Quad donc 10+8=18 )| (4)
Localite.s ; Chaine (String) Offset = 22 (4 Bytes pour un entier long ==> 18+4=22 )| (4)
Telephone.s ; Chaine (String) Offset = 26 (4 Bytes pour une chaine donc 22+4=26 )| (8)
SoldeCompte.d ; Un double Offset = 30 (4 Bytes pour une chaine donc 26+4=30 )| (8)
EndStructure ;------ ------------
; SizeOf(Mon.Machin) |(38)
Global Mon.Machin
Procedure Examine() ; Pas besoin de passer la structure qui est ici globale...
Debug "Dans procedure"
Debug "----------------"
Debug Mon\Nom
Debug Mon\Age.w
Debug Mon\CodePostal
Debug "----------------"
test+1
Mon\CodePostal+1000
ProcedureReturn test
EndProcedure
; ----------------------------------------
; Affectation des champs de la structure
;
Mon\Nom.s ="GeBonet Gerhard"
Mon\Age.w =65
Mon\RueEtNumero.s ="Rue de France,26"
Mon\CodePerso.Q =3366898999922221
Mon\CodePostal.l =4020
Mon\Localite.s ="Liège"
Mon\Telephone.s ="3204-nn0 mm 66"
Mon\SoldeCompte.d =1233650.3368
; -----------------------------------------
Reponse=Examine() ; Appel de la procedure
Debug Reponse ; et affiche le résultat
Debug Mon\CodePostal ; Code postal modifié ...
Debug "-------------------"
;
; On peux aussi affecter comme suit...
; dans ce cas l'assistant d'encodage entre en fonction ...
;
With Mon
\Nom="Albert"
\RueEtNumero="Rue des trois rois, 26"
\Localite="Namur"
\CodePostal=6000
EndWith
; etc...
Debug Mon\Nom
Debug Mon\Age.w
Debug Mon\CodePostal
End
Voilà, voilà... (Mon solde de compte est un peu forcé)
