Fenetre traitement en cours

[Résolu]
Signaler
Messages postés
90
Date d'inscription
mardi 28 octobre 2003
Statut
Membre
Dernière intervention
24 avril 2008
-
Messages postés
90
Date d'inscription
mardi 28 octobre 2003
Statut
Membre
Dernière intervention
24 avril 2008
-
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

Messages postés
90
Date d'inscription
mardi 28 octobre 2003
Statut
Membre
Dernière intervention
24 avril 2008

J'ai rajouté Application.ProcessMessages dans mon traitement et la fenêtre apparait normalement.

Merci pour votre aide.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
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 !