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

Composants VCL Delphi Discussion :

Evenement Change


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Evenement Change
    Je rentre dans une procedure qui peut etre appelée par different evenements Change.
    Dans cette procedure je modifis le contenu d'un champ, ce qui me relance la procedure parceque ce champ utilise un des evenements change.
    Comment empécher la relance de cette procedure?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    J'ai une solution mais c pas super :
    tu peux désactiver le on change puis faire tes modif et ensuite remettre le onchange actif :


    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
     
    procedure taprocedure;
     
    var notify:tnotifyevent;
     
    begin
        notify:=edit1.OnChange;
        edit1.OnChange:=nil;
     
        ...
        tes modifs
        ...
     
       edit1.onchange:=notify;
     
    end;

    voila

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    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 664
    Points : 6 961
    Points
    6 961
    Par défaut
    Tu peux utiliser un booléen.
    C'est tous simple, et c'est plutôt propre comme solution.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  4. #4
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Une solution générique consiste à utiliser la propriété Tag (si elle ne te sert pas à autre chose) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if not (sender is TComponent) or ((sender as TComponent).Tag <> 0) then
      exit;
    with (sender as TComponent) do
    try
      Tag := 1;
      // Les modifs...
      // ...
      // ...
    finally
      Tag := 0;
    end;
    J'ai comparé Sender à TComponent mais s'il s'agit d'un TEdit, c'est mieux de mettre with (sender as TEdit) do ...

    A+

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2007, 11h06
  2. combobox et l evenement change
    Par NAIMA2 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/02/2007, 09h33
  3. Evenements Change Text
    Par hay2006 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/12/2006, 21h45
  4. Evenement change()
    Par sunvialley dans le forum Access
    Réponses: 4
    Dernier message: 02/05/2006, 16h58
  5. [FLASH 8] Evenement change
    Par aldo-tlse dans le forum Flash
    Réponses: 5
    Dernier message: 02/12/2005, 14h02

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