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 :

Inverse fonction ExécuteAncêtre [WD21]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Inverse fonction ExécuteAncêtre
    Bonjour,

    La fonction «ExécuteAncêtre» permet de Surcharger un code.
    Alors, quelle est la fonction inverse pour ne pas surcharger le code ?

    Cordialement
    Mimouni

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    j'ai un modele de champ qui contient un bouton, dans le clic de ce modele j'ai mis une info("Bonjour 1")Aprés j'ai utilisé ce modele dans une fenetre et j'ai mis dans le clic de ce bouton une info("Bonjour 2")A l'exécution, quand je clic sur ce bouton j'ai deux infos
    info("Bonjour 1")
    info("Bonjour 2")
    Ma question : comment faire pour que info("Bonjour 1") ne s'affiche pas

    Cordialement
    Mimouni

  3. #3
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 207
    Points : 9 208
    Points
    9 208
    Par défaut
    Si tu ne veux pas que le code du modèle s'exécute, je ne vois pas l'intérêt d'utiliser un modèle.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  4. #4
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    Citation Envoyé par Mimouni Mohamed Voir le message
    Ma question : comment faire pour que info("Bonjour 1") ne s'affiche pas ?
    Mimouni
    Il suffit de supprimer ou mettre en commentaire le "ExécuteAncêtre". Ou alors je n'ai pas du tout compris le problème

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci frenchsting pour ta réponse

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 199
    Points : 12 775
    Points
    12 775
    Par défaut
    Bonjour,
    Juste pour clarifier, ExecuteAncêtre() ne permet pas de surcharger une procédure/méthode, mais de lancer à partir d'une surcharge de procédure/méthode la version "de base" (l'ancêtre).

    Tatayo.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Voici une copie d'écran qui explique mon probleme.

    J’ai une fenêtre basé sur un modèle de fenêtre.
    A l’exécution, j’ai deux infos qui s’affiches.
    La première info existe dans la partie « Fin d’initialisation de FEN_Configuration (modèle FENMOD_Form) » partie grisé et non modifiable
    La deuxième info existe dans la partie « Fin d’initialisation de FEN_Configuration »
    Ma question : comment empêcher ou éliminer l’exécution « Fin d’initialisation de FEN_Configuration (modèle FENMOD_Form) »

    Cordialement

    Nom : Sans titre.png
Affichages : 408
Taille : 35,4 Ko

  8. #8
    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
    Bonjour
    Outre de rejoindre les autres réponses, je vous invite modifier le modèle de manière à ce que le code soit soumis aux conditions de l'enfant (on aura tout vu !).
    C'est de toute façon un procédé qui pose un problème de conception du modèle (qui est normalement une factorisation d'éléments communs)...

    En clair, le modèle doit comporter une procédure d'initialisation qui va affecter une variable créé par le modèle et qui sera évaluée aux moments propices.

    Modèle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Declarations globales
    fbInitialisation est un booleen = vrai
     
    // Initialisation
    SI fbInitialisation ALORS
       ...
    FIN
     
    Procedure modèleInit(bInitialisation est un booleen = vrai)
    fbInitialisation = bInitialisation
    Et dans l'enfant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Declaration
    ModeleInit(faux)

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Merci pour la réponse, mais il n'y a pas un truc comme :
    CSharp
    Partie Modele
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            public virtual void BeforeLoad()
            {
                ...
            }
    Partie Enfant
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            public override void BeforeLoad()
            {
                ...
                // si je veux lancer la partie modele, je mis la ligne suivante et si je ne met pas, la partie modele ne sera pas exécuter
                base.BeforeLoad(); 
            }

    Visual FoxPro
    Do Default() pour exécuter la partie modele
    NoDefault() pour ne pas exécuter la partie modele

    Merci d'avance

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 815
    Points
    815
    Par défaut
    Bonjour,

    @Mimouni,
    Je salue ton effort pour présenter le problème dans le message #7.

    En lisant de près l'aide en ligne concernant les Modèles de fenêtre et l'héritage
    http://doc.pcsoft.fr/?9000087

    Il faut distinguer ce qui se passe dans le cas d'un champ (comme le champ bouton dans ton message #2) et dans le cas d'une fenêtre (cf. message #7) car la possibilité de surcharge n'est pas identique.

    J'ai l'impression que les "traitements" d'un modèle de fenêtre ne sont pas surchargés par les "traitements" de la fenêtre basée sur le modèle.
    En fait les traitements sont appelés successivement, sans possibilité d'empêcher cette cascade d'appel.
    Un peu comme en POO, le constructeur d'une classe de base est obligatoirement exécuté avant le constructeur de la classe dérivée.

    Si tu veux maîtriser la surcharge du "code d'initialisation" exécuté par le traitement Fin d'initialisation, alors ...

    Dans le modèle de fenêtre tu dois:
    (1) créer une procédure locale, que tu pourrais nommer FenêtreFinInitialisation() par exemple,
    (2) dans cette procédure locale, tu insères le "code d'initialisation",
    (3) dans le traitement Fin d'initialisation, tu fais simplement appel à la procédure locale FenêtreFinInitialisation().

    Ensuite dans la fenêtre basée sur le modèle tu dois:
    (4) surcharger la procédure locale FenêtreFinInitialisation() et insérer le code de ton choix.

    Si tu veux exécuter le "code d'initialisation" présent dans le modèle, alors tu utilises l'instruction ExécuteAncêtre.

    Voilà ce que je comprends.

    Bon dév.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour OnePoint

    Merci pour votre réponse, c'est une bonne idée.

    Mais sauf dans le point (3), il ne faut pas faire appel à la procédure locale FenêtreFinInitialisation().

    A par ça tout va bien

    Cordialement
    Mimouni

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] TF inverse fonction filtre passe bas
    Par Nephi dans le forum Signal
    Réponses: 1
    Dernier message: 14/01/2014, 15h56
  2. [WD10] Inverse fonction Numeriqueverschaines
    Par aldama dans le forum WinDev
    Réponses: 2
    Dernier message: 18/07/2011, 20h41
  3. Inverse Fonction sym
    Par chabacano dans le forum MATLAB
    Réponses: 5
    Dernier message: 24/06/2009, 13h52
  4. Inverse de la fonction Server.MapPath() ?
    Par jmc244 dans le forum ASP
    Réponses: 8
    Dernier message: 13/01/2005, 12h04
  5. [VB6]fonction inverse de Hex (nombres hexadécimaux)
    Par Guigui_ dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2002, 19h31

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