FOROS PROFESIONALES
WINDEV
,
WEBDEV
y
WINDEV Mobile
Inicio
|
Mensajes recientes
|
Conéctese...
|
Desconectar
|
Español
Inicio
→
WINDEV 2024
→
Comment est ce que je peux chainer des appels de fonction
Comment est ce que je peux chainer des appels de fonction
Iniciado por Francois-Alexandre, 18,jul. 2018 20:58 - 4 respuestas
Conéctese…
Francois-Alexandre
#1
Publicado el 18,julio 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 !
Informar
0
1
Christophe PRADEL
#2
Miembro registrado
136 mensajes
Popularité : +12 (14 votes)
Publicado el 19,julio 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
Mensaje modificado, 19,julio 2018 - 13:32
Informar
0
0
Tim
#3
Publicado el 20,julio 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
]
Informar
0
0
Christophe PRADEL
#4
Miembro registrado
136 mensajes
Popularité : +12 (14 votes)
Publicado el 20,julio 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...
Informar
0
0
Tim
#5
Miembro registrado
34 mensajes
Popularité : +3 (3 votes)
Publicado el 20,julio 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
Informar
0
0
→ Volver a WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (versiones precedentes)
WEBDEV (versiones precedentes)
WINDEV Mobile (versiones precedentes)
Reports & Queries
Irrelevante
Herramientas
Français
English
Español
Portuguesa
Fermer cette fenêtre
Búsqueda Tipo
Sólo temas
Todos los mensajes
Periodo Buscar
Cualquier fecha
Última hora
Última 24 horas
Última semana
Último mes
Último año
Cancelar
Vista previa del mensaje
Añadiendo una imagen
Importar una imagen desde una URL
Enviar una imagen desde un archivo de su disco
Arrastrar un archivo o click en "Examinar..."
o
Cancelar
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Texto