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

Langage Delphi Discussion :

Modifier un événement dans le code


Sujet :

Langage Delphi

  1. #1
    HT
    HT est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 15
    Points : 16
    Points
    16
    Par défaut Modifier un événement dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TFiche.FicheActivate();
    begin 
           // traitement
           onActivate:=nil;
    end;
    Voilà un code parfait (dû à Pierre Castelain, grand merci encore) qui permet à la fenêtre, LA PREMIERE FOIS QU'ELLE S'OUVRE, d'exécuter un traitement spécifique, puis à chaque nouvelle fois de ne pas l'exécuter.
    L'instruction OnActivate:=nil est parfaite en ce sens pour des fenêtres qui basculent sans cesse de l'une à l'autre, l'information lue dans l'une éest réinvestie dans l'autre.

    Une simple question maintenant : comment peut-on désactiver l'instruction OnActivate:=nil. Autrement dit rendre à nouveau l'événement Onctivate opérationnel ?
    Peut-on écrire OnActivate:=self ?

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 681
    Points : 7 113
    Points
    7 113
    Par défaut
    Ca ne marche pas, ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnActivate := FormActivate;
    :

  3. #3
    Inactif
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par Lung
    Ca ne marche pas, ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnActivate := FormActivate;
    :
    Soit dit en passant, et pour t'éviter des questions plus tard : ça fonctionne pour TOUS les évènements :
    Exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    OnClose:=Nil
    ...
    OnClose:=FormClose;
     
     
    OnShow:=Nil;
    ...
    OnShow:=FormShow;
    Et même sur les composants autres que les fiches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MonButton.OnClick:=Nil;
    ...
    MonButton.OnClick:=MonButtonClick;
    Ais-je été assez compréhensible ?

  4. #4
    HT
    HT est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Merci à Denis69, c'était effectivement ça ma question : comment restaurer une valeur de pointeur ?

  5. #5
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Mais avant de faire ne faudrait-il pas libérer de la mémoire ?

  6. #6
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 681
    Points : 7 113
    Points
    7 113
    Par défaut
    Citation Envoyé par Claythest
    Mais avant de faire ne faudrait-il pas libérer de la mémoire ?
    : :

    Ca permet juste de dire que l'évènement OnShow ne doit plus exécuter la fonction Show qui était associée.
    Il n'y a rien a libérer !?


  7. #7
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Exact, apparemment les évènements sont des pointeurs sur fonctions, donc rien à libérer.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/03/2016, 20h32
  2. Générer un événement dans le code
    Par yannick29000 dans le forum Composants
    Réponses: 1
    Dernier message: 25/11/2011, 13h27
  3. Créer un contrôleur et son évènement dans le code behind
    Par ZeProgrammator dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/01/2010, 11h26
  4. Réponses: 1
    Dernier message: 20/08/2009, 13h12
  5. Propriété modifiée non reportée dans le code
    Par Toutatis dans le forum Visual Studio
    Réponses: 0
    Dernier message: 11/09/2008, 11h07

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