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 cr�ation dynamique de TEdit


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut Erreur lors de cr�ation dynamique de TEdit
    Bonjour,
    Dans un GroupBox, j'ai cr�� un ensemble de Edit dynamiquement (voir les codes). Quand NmbrHarmo = 3; tout fonctionne, mais quand NmbrHarmo > 4; le programme se plante.
    Merci par avance

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    // Déclaration
      int   NmbrHarmo = 3;
      TEdit	**SourceMagni, **SourceAngle;
     
    //---------------------------------------------------------------------------
    __fastcall TValuesCapture1F::TValuesCapture1F(TComponent* Owner)
    		: TForm(Owner)
    {
     
      //--------------------------------------------------------------
      //  Test: 
      //--------------------------------------------------------------
     
      SourceMagni    = new TEdit*;
      for (int i=0; i<NmbrHarmo; i++)
    		SourceMagni[i]    = new TEdit(ValuesCapture1F);
      for (int i=0; i<NmbrHarmo; i++)
      {
    		SourceMagni[i]->Parent  = GroupBox54;
    		SourceMagni[i]->Visible = true;
    		SourceMagni[i]->Top     = 20 + i*30;
    		SourceMagni[i]->Left    = 10;
    		SourceMagni[i]->Width   = 70;
    		SourceMagni[i]->Height  = 20;
    		SourceMagni[i]->Text    = IntToStr(i);
      }
     
     
      SourceAngle    = new TEdit*;
      for (int i=0; i<NmbrHarmo; i++)
    		SourceAngle[i]    = new TEdit(ValuesCapture1F);
      for (int i=0; i<NmbrHarmo; i++)
      {
    		SourceAngle[i]->Parent  = GroupBox54;
    		SourceAngle[i]->Visible = true;
    		SourceAngle[i]->Top     = 20 + i*30;
    		SourceAngle[i]->Left    = 100;
    		SourceAngle[i]->Width   = 70;
    		SourceAngle[i]->Height  = 20;
    		SourceAngle[i]->Text    = IntToStr(i);
      }
     
     
    }

  2. #2
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Salut,
    pourrait tu nous donner le message d'erreur et �ventuellement la ligne sur laquelle l'appli s'arr�te lors de l'erreur


  3. #3
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut
    Merci pour la reformulation du titre, beaucoup plus claire!

    Erreur quand NmbrHarmo = 5:
    Violation d'acc�s � l'adresse 0067EA69, �criture dans l'adresse 005B8EF0

    J'ai l'impression que cette cr�ation a pris des m�moires d�ja r�serv�s par le programme. Est-ce que mes codes sont corrects pour cr�er plusieurs Edits?
    Merci

  4. #4
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    L'erreur se produit donc, � priori, sur un new.
    Pour moi l'erreur vient de tes allocation de TEdit*, il lui manque une taille car tu va lui mettre plusieurs TEdit * alors que la tu alloue pour un seul TEdit*.
    Je te conseille de faire un tour dans la FAQ C++ sur cette question : http://cpp.developpez.com/faq/cpp/?p...EURS_new_array

  5. #5
    Membre �clair�
    Homme Profil pro
    Chercheur g�nie �lectrique
    Inscrit en
    Mai 2002
    Messages
    263
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur g�nie �lectrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par d�faut
    Merci
    Tu as tout � fait raison. J'ai donn� la taille dans la premi�re couche de new, et tout marche


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
      SourceMagni    = new TEdit*[NmbrHarmo];
     
      SourceAngle    = new TEdit*[NmbrHarmo];

  6. #6
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Avril 2007
    Messages
    70
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par d�faut
    Bonjour,

    J'ai test� ce code, il fonctionne chez moi :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    // Déclaration
      int   NmbrHarmo = 5;
      TEdit	**SourceMagni, **SourceAngle;
     
    //---------------------------------------------------------------------------
    __fastcall TValuesCapture1F::TValuesCapture1F(TComponent* Owner)
    		: TForm(Owner)
    {
     
      //--------------------------------------------------------------
      //  Test: 
      //--------------------------------------------------------------
     
      SourceMagni    = new TEdit*;
     
      for (int i=0; i<NmbrHarmo; i++)
      {
    		SourceMagni[i]    = new TEdit(ValuesCapture1F);
                    SourceMagni[i]->Parent  = GroupBox54;
    		SourceMagni[i]->Visible = true;
    		SourceMagni[i]->Top     = 20 + i*30;
    		SourceMagni[i]->Left    = 10;
    		SourceMagni[i]->Width   = 70;
    		SourceMagni[i]->Height  = 20;
    		SourceMagni[i]->Text    = IntToStr(i);
      }
     
     
      SourceAngle    = new TEdit*;
     
      for (int i=0; i<NmbrHarmo; i++)
      {
    		SourceAngle[i]    = new TEdit(ValuesCapture1F);
                    SourceAngle[i]->Parent  = GroupBox54;
    		SourceAngle[i]->Visible = true;
    		SourceAngle[i]->Top     = 20 + i*30;
    		SourceAngle[i]->Left    = 100;
    		SourceAngle[i]->Width   = 70;
    		SourceAngle[i]->Height  = 20;
    		SourceAngle[i]->Text    = IntToStr(i);
      }
     
     
    }
    Cordialement.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Erreur lors de cr�ation de table dans une BD SQL Server
    Par Klemsy78 dans le forum Administration
    R�ponses: 1
    Dernier message: 18/08/2009, 20h32
  2. R�ponses: 7
    Dernier message: 31/07/2009, 11h53
  3. Erreur lors de cr�ation de class
    Par yLaplace dans le forum C++
    R�ponses: 5
    Dernier message: 15/02/2008, 11h39
  4. erreur lors de cr�ation de miniature !
    Par Byakuya dans le forum Langage
    R�ponses: 5
    Dernier message: 28/05/2007, 17h31
  5. Erreur lors de cr�ation d'un MDE
    Par delcroixf dans le forum Access
    R�ponses: 1
    Dernier message: 11/02/2007, 07h45

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