Fenetre traitement en cours

Résolu
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008 - 2 mars 2005 à 18:15
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008 - 3 mars 2005 à 09:49
bonjour,
j'aimerai ouvrir une fenetre contenant une image et un texte lorsque j'effectue un traitement qui dure longtemps.
A la fin du traitement, j'aimerai que la fenêtre se ferme.

J'ai créé une form avec unTimage etTlabel.
J'appelle la form par form.show puis form.close après la fin de mon traitement.

La fenêtre s'ouvre mais elle est vide et apparait de façon "transparente".

Quelle est la bonne solution pour afficher une fenetre d'attente lorsqu'on lance un traitement qui dure longtemps?

Egalement comment changer le curseur pour le mettre sous forme de sablier avant le lanceent puis revenir en mode normal après.

Merci d'avance

4 réponses

furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
3 mars 2005 à 09:49
J'ai rajouté Application.ProcessMessages dans mon traitement et la fenêtre apparait normalement.

Merci pour votre aide.
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
2 mars 2005 à 19:45
Hello,



Quel genre de traitement effectues tu?



Si c'est une boucle inseres dedans application.processmessages; au début.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
2 mars 2005 à 19:47
Qu'entends tu quand tu dis que ta fenetre apparait de facon transparente???

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 11
2 mars 2005 à 21:52
Je pense que tu fais quelque-chose comme ceci :

begin
Form2.Show;
[instructions longues...]
Form2.Close
end;

essaye plutôt avec cela :

begin
Form2.Show;
Form2.Update;
[instructions longue partie 1]
Application.ProcessMessages;
[instructions longue partie 2]
Application.ProcessMessages;
[instructions longue partie 3]
[...]
Form2.Close;
end;

En faisant Form2.Update, tu force l'application à redessiner la form2 immédiatement, et non pas à la fin de la procédure comme cela se passe par défaut. Cela explique l'aspect "bizarre".
Inclus des Application.ProcessMessages entre les différents blocs d'instructions pour que les messages windows, comme le message de déplacement de la fiche, etc... soient gérés. (tu peux par exemple en mettre un au début d'une boucle si tu as mis des boucles longues dans ton code )
Tu peux agir sur les propriété Screen.Cursor et Form2.Cursor pour changer le curseur


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
Rejoignez-nous