PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile (earlier versions) → Passage de procédure en paramètre
Passage de procédure en paramètre
Started by Camin Mattéo, Jan., 09 2022 10:36 AM - 2 replies
Posted on January, 09 2022 - 10:36 AM
Bonjour,
En voulant utiliser un système de notification je passe certaine procédure en paramètre de constructeur de certaine classe.
À la simulation je n'ai aucun problème et tout se passe bien.
Cependant à la génération j'obtiens des erreurs de ce type :
C:\Mes Projets\HomeTrainer\Android\gen\src\com\ptut3\hometrainer\wdgen\GWDCPListeDifficultes.java:287: error: method fWD_notifModif in class GWDCPListeDifficultes cannot be applied to given types;
vWD_clPFiche = new WDInstance( new GWDCPDifficulteIndividuel(mWD_m_pclDifficulteCourant,fWD_notifModif()) );
                                                                                        ^
  required: WDObjet
  found: no arguments
  reason: actual and formal argument lists differ in length

De ce que je vois c'est que la procédure n'est passée par référence/adresse mais par valeur ( les parenthèses à la fin fWD_notifModif() ). Cependant je ne vois pas pourquoi cela se passe ainsi, je respecte pourtant la documentation WinDev Mobile ( de ce que je vois ). La génération se fait exclusivement pour Android.
Voici les différentes parties du code :
La notification
Procedure NotifModif(pclDifficulté est un MDifficulté dynamique <utile>)
DemandeMiseAJourUI()


L'appel au constructeur
Procedure Modifier()

clPFiche est un PDifficultéIndividuel(m_pclDifficultéCourant,NotifModif)

RENVOYER clPFiche


Le constructeur
Procedure Constructeur(pclDifficulté est un MDifficulté dynamique, pValidation est une Procedure = Null)
Constructeur m_clDifficultéCourante()
m_pclDifficultéSource<-pclDifficulté
m_clDifficultéCourante<=m_pclDifficultéSource
m_pValidation=pValidation


Ce problème est assez urgent, j'espère pouvoir recevoir des indications assez rapidement.
Registered member
3,311 messages
Popularité : +93 (137 votes)
Posted on January, 09 2022 - 9:06 PM
Il me semble que tu ne fourni pas assez d'éléments pour te répondre
Je suis peut être mal voyant
Comme c'est quoi
pclDifficulté est un MDifficulté dynamique <utile>
clPFiche est un PDifficultéIndividuel
m_pclDifficultéCourant est ce pareil que m_clDifficultéCourante?
pValidation est une Procedure
m_pclDifficultéSource
Je vois bien que c'est de la programmation objet
Mais à part ça comment on fait pour comprendre ton code
Registered member
3,311 messages
Popularité : +93 (137 votes)
Posted on January, 10 2022 - 6:51 AM
Bon même si je ne comprends pas ton code
Je peux te dire que les classes et les notifications sont exécutées hors interface utilisateur
De plus si cela fonctionne sur simulateur c'est que tu respectes la programmation pour windev
Sous windows.
Mais pour mobile il y a d'autres règles comme éviter au maximum d'interagir avec l'interface dans un code hors interface.
Donc pour moi tu ne respectes en rien la programmation pour mobile.
L'erreur indique que le compilateur ne comprends pas ta ligne
clPFiche est un PDifficultéIndividuel(m_pclDifficultéCourant,NotifModif)
Il serait bien de transformer celle ci en plusieures lignes