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

C++Builder Discussion :

Erreur lors de l'ouverture d'une boite de dialog


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Par défaut Erreur lors de l'ouverture d'une boite de dialog
    Bonjour à tous, je réalise un petit projet étudiant et j'ai une erreur que je n'arrive pas à résoudre, si vous pouviez m'aider ça serait sympa, je sèche totalement

    Lorsque que j'ouvre la boite de dialog pour la première fois tous ce passe bien que je clic sur ok ou annuler. Mais lorsque que je réouvre ma boite bing grosse erreur :

    ---------------------------
    Debugger Fault Notification
    ---------------------------
    Project C:\Documents and Settings\Nicolas\Bureau\Projet crypto\Project2.exe faulted with message: 'access violation at 0x7ca61a4b: read of address 0x623b3720'. Process Stopped. Use Step or Run to continue.
    ---------------------------
    OK
    ---------------------------

    Pourtant la boite de dialogue c'est ouverte et défois j'ai le temps de sélectionner un fichier.


    Voici le code utiliser même si je pense pas que ça vienne de là :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
    	if( OpenDialogKey->Execute() == True )
    	{
    			for(int i = 0 ; i < 54 ; i++ )
    			{
    				int carte = 0 ;
    				fichier >>  carte ;
    				if (CheckBoxKeyOpen1->Checked)
    					jeuxP1.push_back(carte) ;
     
    				if (CheckBoxKeyOpen2->Checked)
    					jeuxP2.push_back(carte) ;
    			}
     
    			fichier.close();  // on referme le fichier
     
     
    			if (CheckBoxKeyOpen1->Checked)
    					afficherJeux(jeuxP1 , ImageP1 );
     
    			if (CheckBoxKeyOpen2->Checked)
    					afficherJeux(jeuxP2 , ImageP2 );
    	}
    		else  // sinon
    			ShowMessage("Erreur lors de l'ouverture du fichier " + OpenDialogKey->FileName ) ;
    	}
    }
    Ce qui est étrange c'est que ça plante lorsque la boite est ouverte et que le programme attend quand je fasse ok ou annuler.

    Si vous avez une idée je suis prenneur

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Met un point d'arrêt au début de la fonction, puis exécute en pas à pas (F8) pour déterminer sur quelle ligne le programme génère cette exception.

    Merci également d'indiquer à quoi correspondent les différents composants que tu utilise.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Lorsque que j'ouvre la boite de dialog pour la première fois tous ce passe bien que je clic sur ok ou annuler.
    Mais lorsque que je réouvre ma boite bing grosse erreur :
    Donc quand tu fermes la boîte de dialogue il faudrait (tester avec) Hide() à la place de Close() !

    A plus !

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    Est-ce que tu ne ferais pas un "delete" de ta boîte de dialogue après l'avoir appelée?

    La boîte est créée correctement au démarrage du programme, tu l'utilises, tu la détruit et quand tu l'utilises, le segment mémoire contient toujours les données nécessaires (car elles n'ont pas été réallouées) mais pas toutes et c'est ça qui la fait planter...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Par défaut
    As tu essayé avec ShowModal eu lieu de Execute ?

  6. #6
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Regarde si tu n'utilise pas une désalocation de la mémoire, genre Objet -> Free() ou Destroy()

Discussions similaires

  1. erreur lors de l'ouverture de 2 recordset
    Par gup dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/09/2005, 17h16
  2. Erreur lors de l'ajout d'une table
    Par FredMines dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/07/2005, 13h13
  3. Ouverture d'une boite de dialogue
    Par ju972 dans le forum Débuter
    Réponses: 13
    Dernier message: 21/05/2004, 15h22
  4. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47
  5. [VB6] Erreur lors de l'ouverture d'un document Word
    Par Marco le Pouillot dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2003, 09h30

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