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

Bases de données Delphi Discussion :

Arrêter un ttmt en cours, lors de la fermeture d'une fenêtre


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 44
    Points : 32
    Points
    32
    Par défaut Arrêter un ttmt en cours, lors de la fermeture d'une fenêtre
    Bonjour,

    Sur une application de BD, j'ai plusieurs fenêtres. Sur certaines, on peut lancer un traitement utilisant un datamodule en appuyant sur un bouton, le problème, c'est lorsqu'on quitte la fenêtre pendant le traitement, je désalloue mon datamodule dans le FormClose. Le programme fait donc le traitement, l'utilisateur ferme la fenêtre, donc le programme passe à la méthode FormClose qui désalloue le datamodule, et ensuite il revient au traitement pour le finir, mais les références au datamodule font des violations d'accès, et ensuite la fenêtre se ferme.

    Je ne peux pas me permettre de me contenter d'empêcher la fermeture de la fenêtre pendant le traitement, sinon ça n'aurait pas posé de problème.

    J'ai essayé lors du FormCloseQuery de mettre un booléen à vrai pour dire qu'on a demandé à fermer la fenêtre, et tester dans les traitements si le booléen est à faux, dans les boucles notamment, mais je me suis rendu compte qu'en fait il faudrait le faire pour chaque instruction qui fait référence à un composant qui est désalloué dans le FormClose... Ce qui n'est bien entendu pas une solution, ça allourdirai considérablement le code.

    Voilà où j'en suis, si qqun voit ce qu'il faut faire pour permettre de fermer la fenêtre proprement pendant un traitement en cours... Car moi je ne sais plus quoi essayer ... L'idée de tout mettre entre try ... except ne peut pas aller je pense, car si un jour j'ai une vraie erreur / exception non prévue, je ne le verrai pas...

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Peut être exécuter tes traitements dans un thread. Ainsi, lorsque tu auras envie de fermer la fenêtre, tu enverras un signal au thread pour qu'il se termine...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 44
    Points : 32
    Points
    32
    Par défaut
    Effectivement, cette méthode me semble être le top, le problème c'est que je travaille dans une société (donc c'est pas pour ma pomme), et je n'ai pas le temps maintenant de me pencher sur l'étude des threads en Delphi, par contre quand j'aurai un peu de temps libre ça m'intéresse beaucoup d'apprendre ça !

    Si qqun a une idée plus rapide je suis toujours preneur, sinon je vais peut-être me mettre aux threads plus tôt que prévu ...

    Merci beaucoup King Kaiser

Discussions similaires

  1. [GTK+] Signal lors de la fermeture d'une fenêtre secondaire
    Par Skarsnick dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 15/02/2010, 08h53
  2. Réponses: 2
    Dernier message: 29/03/2007, 11h26
  3. Réponses: 5
    Dernier message: 15/01/2007, 10h45
  4. Réponses: 3
    Dernier message: 24/01/2006, 11h27
  5. Evènement sur le body lors de la fermeture d'une fenêtre
    Par Yaz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/09/2005, 17h54

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