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 :

Mesage "Out Of Memory"


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Par défaut Mesage "Out Of Memory"
    Bonjour tout le monde,

    De temps à autres, j'ai un message d'erreur "Out of Memory" qui arrête d'une façon annormale l'exécution de mon programme .

    Je travail avec c++Builder version 6 Ent avec Firebird comme SGBDR.

    Ce problème arrive aussi si j'utilise Interbase.

    Portant, j'utilise toutes les techniques de liberation de mémoire à savoir :
    A l'évennement OnClose : Action=caFree;

    Aussi j'initialise les fenêtre à null à la déclaration :
    TFen *Fen=Null;

    aussi je met delete Fen à la fermeture .

    En plus j'ai augmanté la mémoire jusqu'à 1024 Mo et le problème n'est pas résolu.



    Est-ce qu'il y a une solution.

    J'attend avec impatience votre solutio.
    Je vous remercie d'avance.

  2. #2
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    C'est surement un petit bug mais c'est trés difficile de s'en rendre compte sans code!

  3. #3
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Par défaut
    Si tu peux me dire comment.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut
    Salut !

    uriotcea voulais te dire de poster ton code afin que l'on puisse t'aider
    sans ce code, il nous est difficile de te répondre précisément.

    @+

    Xav

  5. #5
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Par défaut
    Je crois que ma question est claire.


    J'ai une application de type MDI.

    J'ai créé des fenêtres de type :

    Je supprimme la ligne (créée automatiquement par c++builder):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application->CreateForm(__classid(TMyForm1,&MyForm1);
    Je mets la propriété Visible de la fenêtre à false

    Pour afficher MyForm1, j'utilise le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    TMyForm1 *MyForm1=NULL;
    MyForm1 = new TMyForm1(this);
     
    .
    .
    .
     
    MyForm1->ShowModal();
    delete MyForm1;
    FormClose :


  6. #6
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Son code parait correct, mais es-tu certain que ton out of memory ne vient pas d'autre part. As-tu essayé d'utiliser l'outil "codeguard" fourni avec borland.
    Sinon quand tu debug quelle ligne gégnére ce message

  7. #7
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Par défaut
    Bonjour,

    Il s'agit d'une gestion commerciale, saisie d'une pièce.
    j'ai une fenêtre qui présente le Bon de livraison, à chaque fois j'appelle une autre fenêtre pour le choix de l'article à ajouter dans la DBGrid de fenêtre de BL. Si l'article n'existe pas, j'ai un bouton de la liste qui permet de créer un nouveau article par une autre fiche de création de l'article.

    Après 21 insersion par le bouton nouveau, j'ai un bug signalant "Out of Memory"

  8. #8
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    bonjour
    tu parles dans ton code d'application de type MDI
    dans ce cas ton code n'est pas correct
    tu dois créer dans le concepteur de form une form de type fsMDIChild
    la création de la fenêtre de depuis l'application principale est faite de la manière suivante
    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
     
    // la classe de ta fenêtre enfant se nomme TMdichild
    //le .h
    class TMDIChild : public TForm
    {
    __published:
    	// tes composants
    	void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
    private:
    public:
    	virtual __fastcall TMDIChild(TComponent *Owner);
    };
    //le .cpp
    //---------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
     
    #include "ChildWin.h"
    //--------------------------------------------------------------------- 
    #pragma resource "*.dfm"
    //--------------------------------------------------------------------- 
    __fastcall TMDIChild::TMDIChild(TComponent *Owner)
    	: TForm(Owner)
    {
    }
    //--------------------------------------------------------------------- 
    void __fastcall TMDIChild::FormClose(TObject *Sender, TCloseAction &Action)
    {
    	Action = caFree;
    }
    //--------------------------------------------------------------------- 
     
    // création depuis la form Principale <fsMDIForm>
    TMdichild*Child;
    //--- crée une nouvelle fenêtre MDI enfant ----
    	Child = new TMDIChild(Application);
    // on donne un nom à la fenêtre
                Child->Caption = Name;
    c'est l'application MDI qui gère la fermeture et la destruction de la fenêtre
    en appelant de manière interne le Form Close de la fenêtre enfant

    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  9. #9
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Par défaut
    Merci à tous ceux qui m'ont répondu.

    Pour Mr DjmSoftware, j'ai fais tout ce que vous dite.

    Dès que j'ai les bugs d'Out of Memory, j'ai changé le style des fenêtres et je les transformer à fsNormal. Pourqoui ?

    La fenêtre MDIShild est visible (visible=true) , et vous pouvez pas la mettre à false.

    Dons les MDIChild reste en Mémoire même si en met Action=caFree.

Discussions similaires

  1. [XStream][String]out of memory
    Par Invité dans le forum Persistance des données
    Réponses: 8
    Dernier message: 10/01/2006, 14h52
  2. [C++] [gcc] out of memory
    Par fxp17 dans le forum GCC
    Réponses: 5
    Dernier message: 06/01/2006, 10h29
  3. [pb mémoire] out of memory d'eclipse
    Par Casp dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 12/05/2005, 16h39
  4. Out of memory
    Par shurato dans le forum ANT
    Réponses: 1
    Dernier message: 10/11/2004, 16h19
  5. [JBuilder 8] Out of memory problem ...
    Par keros dans le forum JBuilder
    Réponses: 2
    Dernier message: 08/09/2003, 19h03

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