GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEV
,
WEBDEV
e
WINDEV Mobile
Inicio
|
Mensagens recentes
|
Conecte-se...
|
Disconnect
|
Português
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, jul., 18 2018 8:58 PM - 4 respostas
Conecte-se…
Francois-Alexandre
#1
Publicado em julho, 18 2018 - 8:58 PM
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 !
Denunciar
0
1
Christophe PRADEL
#2
Membro registado
136 mensagems
Popularité : +12 (14 votes)
Publicado em julho, 19 2018 - 1:17 PM
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
Mensagem modificada, julho, 19 2018 - 1:32 PM
Denunciar
0
0
Tim
#3
Publicado em julho, 20 2018 - 2:03 PM
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
]
Denunciar
0
0
Christophe PRADEL
#4
Membro registado
136 mensagems
Popularité : +12 (14 votes)
Publicado em julho, 20 2018 - 3:11 PM
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...
Denunciar
0
0
Tim
#5
Membro registado
34 mensagems
Popularité : +3 (3 votes)
Publicado em julho, 20 2018 - 3:21 PM
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
Denunciar
0
0
→ Voltar para WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (versões anteriores)
WEBDEV (versões anteriores)
WINDEV Mobile (versões anteriores)
Reports & Queries
Off-topic
Ferramentas
Français
English
Español
Portuguesa
Fermer cette fenêtre
Tipo de Pesquisa
Apenas tópicos
Todas as mensagens
Período de pesquisa
Qualquer momento
Última hora
Últimas 24 horas
Semana passada
Mês passado
Ano passado
Cancelar
Pré-visualização da sua mensagem
Adicionar imagem
Importar uma imagem de uma URL
Enviar uma imagem a partir do seu disco
Deixe um ficheiro ou clique em "Procurar ..."
ou
Cancelar
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Texto