Le programme fonctionne mais la mention (ne réponds pas) apparait dans la fenetr

Résolu
cs_zatox
Messages postés
79
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
24 octobre 2017
- 1 sept. 2008 à 09:55
cs_zatox
Messages postés
79
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
24 octobre 2017
- 2 sept. 2008 à 11:31
Bonjour a tous, comme certains le savent, je dévelloppe un petit programme (ToolsCleaner) en delphi, dont le but est de rechercher la présence de certains fichiers et dossiers sur le disque dur, puis de les supprimmer.
J'ai rencontré divers soucis a propos de la recherche, et je remercie ceux qui m'ont aider a les surmonter.
Je me suis depuis, perfectionné en delphi, mais je suis a nouveau confronté a un léger soucis.

En effet, lorsque je lance le programme (compatible XP et Vista) sur certains PC , et pas sur tous !!  la mention (ne réponds pas) s'inscrit dans le titre de la fenêtre, comme sur cette image http://www.gitch.ch/msn.jpg . je sais que mon programme est gourmand en ressources,  peut etre un problème de buffer overflow ?? Mais ce qui est érange, c'est que malgré l'apparition de cette inscription, le programme continue de s'executer normalement.

Pouvez vous m'aider a résoudre ce problème, à savoir faire en sorte que (ne réponds pas) n'apparaisse plus.
 Merci d'avance .Cordialemet Zatox

http://pc-system.fr

7 réponses

cs_cantador
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
1 sept. 2008 à 12:05
Bonjour,

à savoir faire en sorte que (ne réponds pas) n'apparaisse plus.
Si l'erreur est sans conséquence(?), tu peux cacher le message en supprimant la barre de titre de la forme

cantador
0
cs_rt15
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
1 sept. 2008 à 13:34
Salut,

Windows affiche ce message lorsque l'application... ne répond pas.

Mais ne répond pas à quoi ?

Au messages envoyés par Windows et à destination de l'application.

Ces messages informe l'application de l'état du système d'exploitation, de la fenêtre de l'application, des actions de l'utilisateur...

Par exemple, quand on bouge la souris au dessus de l'appli, Windows envoie des WM_MOUSEMOVE. Dans une appli Delphi, ces messages sont traités et un éventuel gestionnaire d'évènement est appelé si le développeur l'a demandé (OnMouseMove...)

Une application en cours de fonctionnement n'est pas en permanence en train d'attendre les messages : elle peut par exemple être en train de traiter l'un d'eux (Calcul, sauvegarde dans un fichier...)

Dans ce cas les messages restent dans une file d'attente.
Dans le cas d'une application qui réalise un traitement long, la file d'attente grossis et ne se vide plus. Windows le signal alors en ajoutant ce message. De cette manière, l'utilisateur est informé que l'application n'est pas en état de réagir à des cliques, à des touches tapées, à des déplacement de souris...

Si ton application réalise des traitements longs, tu peux passer utiliser un thread pour réaliser le traitement, pendant que le thread principal s'occupera de traiter les messages. Autre solution, utiliser Application.ProcessMessages dans ton traitement long, aussi souvent que possible (Dans une boucle). Mais attention à ce que l'utilisateur ne puisse pas faire d'ânnerie (Cliquer deux fois sur un bouton de lancement de calcul...)

Si ton application ne fait rien qui soit suceptible de prendre du temps, c'est curieux...
0
cs_zatox
Messages postés
79
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
24 octobre 2017

1 sept. 2008 à 19:08
bonsoir, et un grand merci pour vos réponses. Cantador, ta méthode de faire en sorte que le message n'apparaisse plus dans le titre me plait, mais comment la mettre en oeuvre ?

ensuite, pour rt15, mon application recherche la présence de plusieurs fichiers (une centaine) sur la partition système du PC. ces fichiers sont définis dans 3 TStringList.

mais je ne comprends pas le langage technique que tu emploie. c'est juste une ligne de code que je doit rajouter a ma source? ou alors je dois revoir tout le code source? merci d'avance

http://pc-system.fr
0
cs_cantador
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
2 sept. 2008 à 09:18
Pour supprimer la barre de titre tout en ayant une forme déplaçable voir le traitement de forme "alerte" dans le prog "PostitForEver";


Mais pour ton traitement, il serait préférable de faire un Thread.

cantador
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_zatox
Messages postés
79
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
24 octobre 2017

2 sept. 2008 à 10:45
Bonjour a tous les deux et merci pour vos réponses.
Cantador, je viens de mieux comprendre ce que tu me propose, mais je ne veux nullement supprimmer la barre de titre. j'avais mal compris a ma première lecture? en revanche, vous me proposez tous les deux de faire un THREAD ma question est simple : c'est quoi un thread? et comment le mettre en place?

merci pour vos réponses et du temps que vous me consacrez .

http://pc-system.fr
0
cs_zatox
Messages postés
79
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
24 octobre 2017

2 sept. 2008 à 10:56
Merci, j'ai bien compris que je devais faire en sorte que mon programme fasse une chose a la fois tout en faisant croire a l'utilisateur qu'il fait tout en même temps. Ce que je voulais dire, c'est comment traduire cela en ligne de codes? aurais tu un petit tuto sous la main a me proposer? merci d'avance

http://pc-system.fr
0
cs_zatox
Messages postés
79
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
24 octobre 2017

2 sept. 2008 à 11:31
merci beaucoup, je vais me encher là dessus

http://pc-system.fr
0