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

Langage Delphi Discussion :

Le programme reste en mémoire - pas de message ni d'erreur


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut Le programme reste en mémoire - pas de message ni d'erreur
    Bonjour,
    Un programme delphi, exécuté sans erreur apparente, reste en mémoire apres l'avoir fermé. Je suis obligé systématiquement d'utiliser le sempiternel Alt+Ctrl+Sup pour le detruire définitivement . Environ 5000 lignes de code, Une close constructor, une autre destructor, je pense avoir vérifié que tous les objet créés ont été détruits par des . free (tstringlist, tfilestream...etc) . Comment connaître la cause de cette résistance au close ? Suis-je assez clair ?. Même en lançant l'application à partir de Delphi, quand je le ferme, l' interface utilisateur se ferme bien en apparence, mais l'application reste en mode "exécution", et je dois alors réinitialiser le programme pour en sortir (->Exécuter-->Réinitialiser le programme)

    PS Delphi 5 sous w2k

    Merci

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Si tu fais un pas à pas, tu vois où il bloque ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Utilises tu une connexion à un base de données ? si , oui as tu bien vérifier que la connexion est couper avant la fin du programme ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    en pas a pas il bloque justement à la dernière instruction, le "inherited" du destructor. Mais ça ne veut pas dire que le inherited est la cause...

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    j'ai bien des acces bases de donnees, et oui les acces sont coupés j'ai une fonction qui s'occupe de ça et que j'utilise dans tous mes softs

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Personne n'a d'idée ?
    Ma question se résume à : Comment tracer les évenements qui font que le programme ne se détruit pas !

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Gremlins13
    j'ai bien des acces bases de donnees, et oui les acces sont coupés j'ai une fonction qui s'occupe de ça et que j'utilise dans tous mes softs
    Essaie de couper ta base de données uniquement en fermant le composant TDatabase/TAdoConnection/Autre (qui fermera automatiquement les tables et query associé).
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Merci mais désolé, cela ne vient pas de là. pas de composants ADO ou TTables. Acces aux bases par des liens odbc direct et des fonctions spécifiques implémentées. Mais les acces aux bases ne sont pas en cause, ces fonctions sont rodées depuis longtemps. Pare contre, ce soft utilise également des composants TComPortDriver et j'ai peur que ce soit eux la cause....

  9. #9
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Tu utilises des Threads ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  10. #10
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Le destructor correspond à quel type d'objet (calcul ou form) ?
    Pour les form, on doit faire les éventuels libérations dans la procédure Destroy.

    Il faudrait essayer de mieux cerner le problème en shuntant certaines initialisations et en fermant l'application en ayant exécuté le moins de choses possible (par exemple, juste le premier formCreate).

    Ensuite, réintégrer progressvement du code.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Pas de thread non..


    C' est un destructor de form. Et c'est bien dans cette partie que j'effectue toutes les libérations des éléments qui ne l'auraient pa été dans le corps du programme. C'est sur que la meilleure maniere serait bien de simplifier au minimum le code pour mieux cerner mais vu la taille et le nombre des fonctions et procedures présente, ça va être chaud à réaliser , mais je vais tenter le coup merci d'avoir répondu

Discussions similaires

  1. Réponses: 18
    Dernier message: 13/12/2005, 13h27
  2. Killer un programme dont on a pas le controle
    Par dj_djocker dans le forum C++Builder
    Réponses: 5
    Dernier message: 03/05/2005, 08h34
  3. [Connexion] pas de message d'erreur
    Par kase74 dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 22/04/2005, 10h35
  4. déclencheurs qui ne se lancent pas - pb messages
    Par marie253 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/08/2004, 15h19
  5. [Kylix] Un programme compilé ne veut pas se lancer
    Par LightBeam dans le forum EDI
    Réponses: 1
    Dernier message: 05/08/2003, 10h15

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