IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Paramètre procédure et complétion


Sujet :

WinDev

  1. #1
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut Paramètre procédure et complétion
    Bonjour

    Pour mettre en place un mécanisme de callback (procédure appelée sur un évènement) il faut transmettre le nom de la procédure au traitement qui va la lancer.
    Utiliser un paramètre de type chaine permet de faire circuler le nom de la procédure jusqu'à l'instruction ExécuteTraitement qui va la déclencher.

    Si on utilise un paramètre de type Procédure, l'éditeur de code de WinDev assure la complétion : il propose automatiquement la procédure. Un petit détail qui change la vie du développeur.

    Je me rue sur cela et cela fonctionne plutôt bien... jusqu'au ExécuteTraitement.

    En effet, ce mécanisme est effectué dans une classe, les procédures sont des membres que l'on affecte avec des méthodes dédiées et déclenchée uniquement si elles ont été fournie.
    NB : on passe aussi le nom de la fenêtre qui contient les procédures

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    clTest est une Classe
    	cFen est une chaine // alimentée au constructeur ou via sa méthode set...
    	mproc_Evenement1 est une Procédure
    	mproc_Evenement2 est une Procédure
    FIN
    
    PROCEDURE SetCallBack(pProc1 est une procédure = null, pProc2 est une procédure = null)
    	SI pProc1 <> null ALORS :mproc_Evenement1 = pProc1 
    	SI pProc2 <> null ALORS :mproc_Evenement2 = pProc2
    FIN
    
    PROCEDURE Evenement1()
    	//... traitement...
    	SI :mproc_Evenement1<>null ALORS Executetraitement(:mcFen, :mproc_Evenement1,trtProcédure)
    	Aucune syntaxe ExecuteTraitement ne correspond...
    FIN
    J'ai fait un certain nombre d'essais infructueux.
    Je sais que le type procédure a été établi pour enchainer les procédure mais vu qu'il permet la complétion en paramètre j'ai imaginé qu'on irait au bout...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    Et la commande Execute() à la place de ExecuteTraitement() ne fonctionne t'elle pas mieux ? elle attend une chaine et les paramètre de la procédure....
    Peut-être que Windev gère mieux la portée dans ce cas là.

  3. #3
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    Le type procédure s'utilise comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PROCEDURE MaProcédure(nVal)
    Trace(nVal)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    toto est Procédure = MaProcédure
     
    toto(42)
    Il fonctionne avec les procédures de fenêtres (depuis peu).
    Pour les méthodes de classes, il suffit de faire une méthode globale qui prend en paramètre un objet.
    En fait, la même chose est possible pour une fenêtre si vous n'avez pas confiance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PROCEDURE MaProcédure(LaFenêtre)
    LaFenêtre.MaVraieProcédure()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    toto est Procédure = MaProcédure
    MaProcédure(MaFenêtre) // Appelle MaVraieProcédure sur MaFenêtre
    Mais c'est inutile, WD gère bien les procédures de fenêtre maintenant. (un bug que je leur avais signalé !)

Discussions similaires

  1. Echappement dans paramètres Procédure stockée
    Par Sanceray3 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/09/2009, 18h26
  2. [WD14] Paramètre procédure globale
    Par AUZUR dans le forum WinDev
    Réponses: 6
    Dernier message: 19/08/2009, 09h25
  3. Problème Paramètres procédure pl/sql
    Par tofke dans le forum PL/SQL
    Réponses: 4
    Dernier message: 12/07/2007, 15h41
  4. paramètre procédure stockée
    Par joe.lindien dans le forum Requêtes et SQL.
    Réponses: 19
    Dernier message: 20/04/2007, 12h43
  5. [SQLSERVER]Pb passage paramètre procédure stockée
    Par galinijay dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/08/2005, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo