Gambas France BETA


Pas de compte ? Incription

utiliser RETURN..

1
AuteurMessages
spheris#1 Posté le 9/5/2010 à 15:44:00
Bonjour,
peut on retourner des valeurs de plusieurs type avec RETURN genre :

1
PUBLIC SUB lafonction()DIM lepoid AS floatdim lataille AS floatdim limage AS picturedim caractere AS integerdim sensibilite AS stringReturn lepoid,lataille,limage,caractere,sensibiliteend


et comment peut on le recuperer dans la fonction toto:

1
PUBLIC SUB toto()bob = lafonction()END


;)
gambix#2 Posté le 9/5/2010 à 20:10:00
Faire simple !La solution est de passer par une classe de structure :

pour une classe nommée TPersonne

Public lepoid as float
Public lataille as float
Public limage as picture
Public caractere as integer
Public sensibilite as string



public sub lafonction() as TPersonne
dim hPersonne as New TPersonne
WITH hpersonne
.lepoid = 33
.lataille = 125
.limage = Picture["monimage.png"]
.caratere = 3
.sensibilité = "vraiement sensible"
END WITH

Return hPersonne
end Function


L'appel

dim hPersonne as TPersonne

hPersonne = lafonction()

Print hPersonne.lepoid


voila :)
Moins de texte dans une signature c'est agrandir son espace.
spheris#3 Posté le 9/5/2010 à 21:31:00
merci pour l'info,
mais alors pourquoi a l'execution du programme, j'ai l'erreur :

TPersonne.limage is not static !

;)
gambix#4 Posté le 9/5/2010 à 22:09:00
Faire simple !t'a qu'a relire :/

dim hPersonne as New TPersonne

NEW !!!!

j'instancie
on n'utilise jamais la classe directement
ni un type d'ailleur en vb
Moins de texte dans une signature c'est agrandir son espace.
spheris#5 Posté le 9/5/2010 à 22:21:00
Bon sang ! Mais c'est bien sur !
logique !
ce n'est pas TPersonne.limage mais hPersonne.limage
:geek: :geek: ;) ;)
1