Plantage "windows" de mon programme en delphi

Résolu
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009 - 14 déc. 2004 à 15:33
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009 - 15 déc. 2004 à 11:22
Bonjour

J'ai réalise un programme en delphi qui traite une table de base de données. Quand ma table ne contient pas beaucoup d'enregistrements, tout se passe très bien.
Par contre dès que ma table contient beaucoup d'enregistrements et que je fais autre chose en même temps que mon programme travaille, j'ai le droit à un beau "le programme ne répond pas" (alors que si je ne fais rien en même temps ca passe très bien).

Je suppose que mon programme utilise pas mal de ressources mais comment régler ce genre de problème ? :$

Merci

11 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
14 déc. 2004 à 16:05
Et est ce que tu as deja attendu la fin du traitement lorsque windows te dit "le programme ne repond pas" cela ne signifie pas que le programme est planté (ca peut etre le cas) mais ca peut signifié que le programme est entrain de travaillé ce qui est ton cas.

Lance donc ton programme et fais autre chose a cote ensuite quand tu verras "le programme ne repond pas" attend une heure (ca fait long) et tu verras bien que ton programme aura finis.

Pour eviter un figeage de programme tu peux :
Dans tes boucles insérées un application.processMessages
Ou sinon mettre un memo et une progressbar pour indiquer l'état d'avancement et faire un refresh de ta form regulierement
ou sinon les deux aussi.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
15 déc. 2004 à 11:11
Regarde l'aide pour avoir plus de détails. Mais je pense que Update risque de surcharger ta mémoire.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
14 déc. 2004 à 15:52
Alors commencons par le debut :
Quel type de base de données?
Combien de temps dure le traitement si tu ne touches a rien?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
14 déc. 2004 à 15:59
En fait j'ai en entrée une base access que je transfert sur sql serveur pour faire tous mes traitements de correction automatique des champs et je retransfert vers access à la fin.

Sur un gros fichier le traitement total peut facilement prendre 1h.
0

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

Posez votre question
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
14 déc. 2004 à 16:07
Juste pour info il fait quelle taille ton fichier?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
14 déc. 2004 à 16:12
en fait j'ai le caption de ma form qui change à chaque étape ainsi que le texte d'un tedit, pour dire où on est le programme. Le problème c'est que la plupart du temps la fenetre devient toute blanche (même si ca continu à tourner correctement) ou alors il affiche le changement que très longtemps après :-/
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
14 déc. 2004 à 16:17
celui sur le quel je fais mes tests actuellement fait 44000 lignes environ mais je peux en avoir de 175000 et même plus.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
14 déc. 2004 à 16:22
Alors fais un refresh en meme temps que tu mets à jour ton caption et la fenetre restera peut etre blanche mais au moins tu veras le caption qui t'affichera les infos.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
14 déc. 2004 à 16:38
ok je vais tester

sinon tu avais raison, si je laisse mon truc tourner en même temps que je fais autre chose et que je ne clique pas sur la fenetre du programme ca ne me fait plus "le programme ne répond pas"
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
15 déc. 2004 à 11:06
juste une question aussi, qu'elle est la différence entre

form1.update

et

form1.refresh

?
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
15 déc. 2004 à 11:22
ben j'ai justement regardé dans l'aide mais je ne trouve pas l'explication très claire.
Si update surcharge la mémoire je vais donc remplacer par refresh.
0
Rejoignez-nous