Gambas France BETA

Connexion

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
La simplicité évite les erreursLa 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 :)
Ce que Gambas m'a appris c'est qu'avec le temps on peut être capable de tout.
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
La simplicité évite les erreurst'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
Ce que Gambas m'a appris c'est qu'avec le temps on peut être capable de tout.
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