FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Comment est ce que je peux chainer des appels de fonction
Comment est ce que je peux chainer des appels de fonction
Débuté par Francois-Alexandre, 18 juil. 2018 20:58 - 4 réponses
Connectez-vous…
Francois-Alexandre
#1
Posté le 18 juillet 2018 - 20:58
Bonjour!
Je suis à la recherche d'une syntaxe me permettant de chainer mes appels de fonction.
monResultat
=
new
C
alculateur
(
)
.
DiviserDeuxNombres
(
8
,
4
)
Au lieu de devoir faire
monCalculateur
=
new
C
alculateur
(
)
monResultat
=
monCalculateur.DiviserDeuxNombres
(
8
,
4
)
Calculateur contient bien la fonction DiviserDeuxNombres
Merci !
Signaler
0
1
Christophe PRADEL
#2
Membre enregistré
136 messages
Popularité : +12 (14 votes)
Posté le 19 juillet 2018 - 13:17
Salut François-Alexandre
Voici une solution que j'arrive à faire fonctionner avec Windev 23
Soit une Classe
MaClasseChainee
est une
C
lasse
nombre
est un entier
FIN
J'ai défini deux procédures sur cette classe :
Procedure
Multiplie
(
n
Facteur
est un entier
)
nombre
=
nombre
*
n
Facteur
RENVOYER objet
Procedure
Additionne
(
n
est un entier
)
nombre
=
nombre
+
n
RENVOYER objet
Tu remarqueras que ces deux procédures renvoient en résultat la référence de l'objet lui même (mot clé "objet")
Voici le code de test :
cl
MaClasseChainee
est un
MaClasseChainee
cl
MaClasseChainee.Additionne
(
10
)
.
Multiplie
(
4
)
Info
(
cl
MaClasseChainee.nombre
)
Et le résultat est correct !
J'espère que cet exemple t'aidera
Je sais que je ne réponds pas tout à fait à ta question qui consiste à pouvoir instancier et appliquer une fonction à un objet de classe en une seule ligne.
Sur ce point, je ne vois pas de solution autre que de passer un paramètre chaîne décrivant la séquence d'appel et, dans le constructeur, d'utiliser les fonctionnalités de récupération de définition de classe pour lancer les procédures demandées.
Mais sur le principe d’enchaînement de plusieurs fonction, c'est cool car j'ai découvert quelque chose !
Christophe
Message modifié, 19 juillet 2018 - 13:32
Signaler
0
0
Tim
#3
Posté le 20 juillet 2018 - 14:03
Bonjour,
r
MonResultaat
est un réel
=
C
alc.donneInstance
(
)
.
diviser
(
5
,
2
)
methode 'donneInstance'
Procedure
PUBLIQUE GLOBALE donneInstance
(
) :
C
alc
monInstance
est un
C
alc
RENVOYER
monInstance
Dans le cas d'un calculateur, vous pouvez utilisez ne qui des methodes globales (si vous n'avez pas besoin d'un instance)
r
MonResultaat
est un réel
=
C
alc.diviser
(
5
,
2
)
[
code
:
wl
]
Signaler
0
0
Christophe PRADEL
#4
Membre enregistré
136 messages
Popularité : +12 (14 votes)
Posté le 20 juillet 2018 - 15:11
Je n'avais pas pensé aux procédures de classe
Mais dans la mesure ou la procédure n'agit pas sur l'instance de la classe, autant faire une collection de procédures spécialisée...
Signaler
0
0
Tim
#5
Membre enregistré
34 messages
Popularité : +3 (3 votes)
Posté le 20 juillet 2018 - 15:21
Bonjour Christophe,
Je trouve que une classe avec des procedures globales est plus lisible que une collection de procedures.
J'ai l'impression que PCSoft vois les avantages aussi:
monTableau
est un tableau de chaînes
TableauAjouteLigne
(
monTableau
,
"aaa"
)
ou
monTableau
est un tableau de chaînes
monTableau.ajoute
(
"aaa"
)
Mais les deux (classe et collections de procedures) sont valable
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte