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

 Delphi Discussion :

Erreur sur évènement OnChange


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 38
    Points : 28
    Points
    28
    Par défaut Erreur sur évènement OnChange
    Salut;
    J’ai un problème qui me gène beaucoup ;
    J’ai dans mon application un événement OnChange d’un dbedit
    le problème est quand j’exécute mon programme il exécute cet événement avant même de créer la forme et ça me cause des erreurs,
    aidez moi svp
    merci

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 49
    Points : 47
    Points
    47
    Par défaut
    Le OnChange est probablement généré par un sender identifié. Tu pourrais identifier le sender qui fous la merde et l'exclure.

    'If sender.classname = 'Le nomDelaclasse' then exit ;

    ou bien 'If sender is aTSomething' then exit.

    selon le cas. Dans un premier temps pour voir qui génère le problème tu fais ca:
    au début de la procédure OnChange tu écrit: ShowMessage( Sender.ClassName ).

    Tu verras alors d'où vient le problème.
    Une autre hypothèse est que des actions sont éfféctuées sur ton TBedit alors qu'il n'est pas encore crée, ce qui te donne des violation d'accès...c'est vraiment plus probable d'après ce que tu dis ( et dans ce cas tu auras la même erreur et le message spécifié ci dessus ne sera jamais affiché...)
    Donc dis-nous ce qu'il en est...ca permettera de diagnostiquer plus précisemment ce qui se passe...

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 219
    Points : 41 485
    Points
    41 485
    Billets dans le blog
    63
    Par défaut
    Le problème se produit certainement lorsque tu ouvres la table

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Le problème se produit certainement lorsque tu ouvres la table
    oui c'est vrai j'ai fait une exécution pas à pas et j'ai trouvé que quand je fait table.active := true; il exécute aprés la procédure onchange;
    ou est la solution de ça ?

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 219
    Points : 41 485
    Points
    41 485
    Billets dans le blog
    63
    Par défaut
    peut être (je dis bien peut être) dans un DisableControls avant l'ouverture de la Table puis un EnableControls après .

    Ou encore en mettant DBEdit1.OnChange:=nil , ouvrir la table puis DBEdit1.OnChange:=DbEditOnChange

    Mais , la question principale serait de savoir si c'est bien le bon évènement à utiliser

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    j'ai fait showmessage(Sender.ClassName) et il m'a donné TDBedit;
    Mon problème est quand le programme exécute Application.CreateForm(TForm4, Form4);
    il exécute aprés directement le OnChange d'un DBEdit qui se trouve dans cette forme;
    par exemple quand j'ai écrit showmessage(Sender.ClassName) dans OnChange de ce DBedit il m'affiche le message avant qu'il lance la premiere fenetre d'exécution.

  7. #7
    Membre expert
    Avatar de vpourchet
    Homme Profil pro
    Integrateur Systemes & Virtualisation
    Inscrit en
    Avril 2008
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Integrateur Systemes & Virtualisation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 159
    Points : 3 645
    Points
    3 645
    Par défaut
    tu est sur que tu n'initialise pas le contenu de l'edit ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 38
    Points : 28
    Points
    28
    Par défaut
    Merci à tous;
    J’ai trouvé une solution qui consiste à effectuer le test suivant :
    If DBEdit1.modified then ; donc quand il va exécuter le OnChange avant de modifier le DBEdit il ne va pas causer des problèmes.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2010, 06h37
  2. [Tableaux] Erreur sur évènement onmouseover
    Par pat06 dans le forum Langage
    Réponses: 25
    Dernier message: 17/10/2007, 18h05
  3. Forcer le focus sur la zone après un évènement ONCHANGE
    Par totoleheros dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/07/2007, 14h24
  4. envoyer un formulaire sur un évènement onchange.
    Par maniaco_jazz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2005, 14h44
  5. [O9i][Win][OMS]Erreur sur événement
    Par Fabien Celaia dans le forum Oracle
    Réponses: 4
    Dernier message: 05/11/2004, 15h00

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