OVH Cloud OVH Cloud

[WD10] Fonction Ferme()

8 réponses
Avatar
wd_newbie
Bonsoir,

est-il possible de renvoyer un tableau avec la fonction Ferme( ) ?

exemple :
jouvre une fenetre avec :
<code>
tableau est un tableau de 2 entier
tableau =3D ouvre(FEN_test)
</code>
.=2E. et dans le bouton de fermeture de la fenetre :
<code>
nT est un tableau de 2 entier
nT[1]=3D10
nT[2]=3D 22
ferme(FEN_test,nT)
</code>

.=2E. du moment que j'y suis ... est-ce qu'on peut passer un tableau a
la fonction ouvre( ) ?

Je dois ramener des valeurs multiples depuis une fen=EAtre et je cherche
une fonction =E9l=E9gante pour le faire , sans utiliser un tableau global.

merci d'avance !

Olivier

8 réponses

Avatar
Pascal F
wd_newbie a exprimé avec précision :
Bonsoir,

est-il possible de renvoyer un tableau avec la fonction Ferme( ) ?

exemple :
jouvre une fenetre avec :
<code>
tableau est un tableau de 2 entier
tableau = ouvre(FEN_test)
</code>
... et dans le bouton de fermeture de la fenetre :
<code>
nT est un tableau de 2 entier
nT[1]
nT[2]= 22
ferme(FEN_test,nT)
</code>

... du moment que j'y suis ... est-ce qu'on peut passer un tableau a
la fonction ouvre( ) ?

Je dois ramener des valeurs multiples depuis une fenêtre et je cherche
une fonction élégante pour le faire , sans utiliser un tableau global.

merci d'avance !

Olivier



Voir si MaFenetre..ValeurRenvoyée=LeTableau peut convenir.

--
Pascal

Ne garder que le prénom pour me joindre
Avatar
wd_newbie
On 17 fév, 21:52, Pascal F wrote:
wd_newbie a exprimé avec précision :



> Bonsoir,

> est-il possible de renvoyer un tableau avec la fonction Ferme( ) ?

> exemple :
> jouvre une fenetre avec :
> <code>
> tableau est un tableau de 2 entier
> tableau = ouvre(FEN_test)
> </code>
> ... et dans le bouton de fermeture de la fenetre :
> <code>
> nT est un tableau de 2 entier
> nT[1]
> nT[2]= 22
> ferme(FEN_test,nT)
> </code>

> ... du moment que j'y suis ... est-ce qu'on peut passer un tableau a
> la fonction ouvre( ) ?

> Je dois ramener des valeurs multiples depuis une fenêtre et je cherche
> une fonction élégante pour le faire , sans utiliser un tableau glob al.

> merci d'avance !

> Olivier

Voir si MaFenetre..ValeurRenvoyée=LeTableau peut convenir.

--
Pascal

Ne garder que le prénom pour me joindre



J'avais quand même essayé avant de poster :-)

ma question étatit plutot :
"y'a t'il une façon élégante de renvoyer un tableau a la fermeture
d'une fenêtre plutot que de passer par un tableau global."


Olivier
Avatar
Pascal F
wd_newbie a présenté l'énoncé suivant :
On 17 fév, 21:52, Pascal F wrote:
wd_newbie a exprimé avec précision :



Bonsoir,



est-il possible de renvoyer un tableau avec la fonction Ferme( ) ?
exemple :
jouvre une fenetre avec :
<code>
tableau est un tableau de 2 entier
tableau = ouvre(FEN_test)
</code>
... et dans le bouton de fermeture de la fenetre :
<code>
nT est un tableau de 2 entier
nT[1]
nT[2]= 22
ferme(FEN_test,nT)
</code>



... du moment que j'y suis ... est-ce qu'on peut passer un tableau a
la fonction ouvre( ) ?



Je dois ramener des valeurs multiples depuis une fenêtre et je cherche
une fonction élégante pour le faire , sans utiliser un tableau global.
merci d'avance !



Olivier



Voir si MaFenetre..ValeurRenvoyée=LeTableau peut convenir.

--
Pascal

Ne garder que le prénom pour me joindre



J'avais quand même essayé avant de poster :-)

ma question étatit plutot :
"y'a t'il une façon élégante de renvoyer un tableau a la fermeture
d'une fenêtre plutot que de passer par un tableau global."


Olivier



Mais le tableau est détruit en sortie de fenetre, la fenetre appelante ne pourra jamais le récupérer. C'est une question de
portée des variables.

--
Pascal

Ne garder que le prénom pour me joindre
Avatar
PERCAPITA
Un paramètre de la fenêtre par référence donc en entrée sortie

"Pascal F" a écrit dans le message de news:
45d7d26d$0$30365$
wd_newbie a présenté l'énoncé suivant :
On 17 fév, 21:52, Pascal F wrote:
wd_newbie a exprimé avec précision :



Bonsoir,



est-il possible de renvoyer un tableau avec la fonction Ferme( ) ?
exemple :
jouvre une fenetre avec :
<code>
tableau est un tableau de 2 entier
tableau = ouvre(FEN_test)
</code>
... et dans le bouton de fermeture de la fenetre :
<code>
nT est un tableau de 2 entier
nT[1]
nT[2]= 22
ferme(FEN_test,nT)
</code>



... du moment que j'y suis ... est-ce qu'on peut passer un tableau a
la fonction ouvre( ) ?



Je dois ramener des valeurs multiples depuis une fenêtre et je cherche
une fonction élégante pour le faire , sans utiliser un tableau global.
merci d'avance !



Olivier



Voir si MaFenetre..ValeurRenvoyée=LeTableau peut convenir.

--
Pascal

Ne garder que le prénom pour me joindre



J'avais quand même essayé avant de poster :-)

ma question étatit plutot :
"y'a t'il une façon élégante de renvoyer un tableau a la fermeture
d'une fenêtre plutot que de passer par un tableau global."


Olivier



Mais le tableau est détruit en sortie de fenetre, la fenetre appelante ne
pourra jamais le récupérer. C'est une question de portée des variables.

--
Pascal

Ne garder que le prénom pour me joindre




Avatar
wd_newbie
On 18 fév, 15:14, "PERCAPITA" wrote:
Un paramètre de la fenêtre par référence donc en entrée sortie

"Pascal F" a écrit dans le message de news:
45d7d26d$0$30365$




Pas tout compris avec ton histoire d'entrée / sortie ?

:-)

Olivier
Avatar
Romain PETIT
wd_newbie a pensé très fort :

Pas tout compris avec ton histoire d'entrée / sortie ?



En gros :

*** Code d'appel de la fenetre
tsTableau est un tableau de 10 chaines
Ouvre("Fenetre", tsTableau)
c est un entier
POUR c=1 A dimension(tsTableau)
trace(tsTableau[c])
FIN



** Code de déclarations de globales de la fenetre
PROCEDURE Fenetre(tab)
c est un entier
POUR c=1 A dimension(tab)
tab[c] = "Chaine " + c
FIN

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
wd_newbie
c'est marrant , j'ai fait quelques essais :

si j'e fait :
//*******************************
nt,nbest un tableau de 2 entier
nt[1]
nt[2]P
nb= ouvre(FEN_test,nt)je peux récupérer dans ma procedure de la
fenêtre FEN_test :
procedure FN_test(nt)
Trace (nt[1])
Trace(nt[2])
// ici tout se passe bone, je recupere les donnees de mon tableau


par contre dans mon bouton fermer :

// je change les valeurs de ma globale de fenetre nt
nt[1]$
nt[2]%
ferme(FEN_test,nt)

Et au moment du clic sur Fermer, j'ai l'erreur :

*******
Erreur à la ligne 7 du traitement Clic sur BTN_remboursement.
La fonction Ouvre aurait dû renvoyer une valeur.
- Appel WL :
Traitement de <FEN_locations.BTN_remboursement>, ligne <7>, thread <0>
- Niveau : erreur fatale (EL_FATAL)
- Que s'est-il passé ?
La fonction Ouvre aurait dû renvoyer une valeur.
********

Pourtant si je prends ma ligne nb=ouvre(FEN_test,nt) je demande bien
une valeur en retour ?

en modifiant :
ferme(FEN_test,"test")
et
nb est une chaîne = Ouvre(FEN_test,nt)

je récupère la valeur "test" dans mon nb ....

le passage de tableau serait a sens unique ? fonction ouvre( )
seulement ??



Olivier
Avatar
Romain PETIT
Le 20/02/2007, wd_newbie a supposé :
c'est marrant , j'ai fait quelques essais :
le passage de tableau serait a sens unique ? fonction ouvre( )
seulement ??



Tu n'as pas à utiliser de syntaxe ferme(FEN_test, nt)

Ton tableau est passé par référence (par adresse), il est
automatiquement récupérable.
(cf mon code ci-dessus, pas de code ferme())

maintenant si tu veux gérer aussi un retour de fenetre (par exemple
pour savoir si l'utilisateur annule une action, il faudra soit mettre
le tableau à blanc dans ta fenetre appellée, soit gérer cela dans la
fenetre appelant avec la valeur de retour :

*** Code d'appel de la fenetre
tsTableau est un tableau de 10 chaines
c est un entier
SI Ouvre("Fenetre", tsTableau) ALORS
POUR c=1 A dimension(tsTableau)
trace(tsTableau[c])
FIN
FIN

** Code de déclarations de globales de la fenetre
PROCEDURE Fenetre(tab)
c est un entier
POUR c=1 A dimension(tab)
tab[c] = "Chaine " + c
FIN


** Code de fermeture de la fenetre
SI bAbandon ALORS RENVOYER Faux SINON RENVOYER Vrai

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)