furax13
Messages postés90Date d'inscriptionmardi 28 octobre 2003StatutMembreDernière intervention24 avril 2008
-
2 mars 2005 à 18:15
furax13
Messages postés90Date d'inscriptionmardi 28 octobre 2003StatutMembreDernière intervention24 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.
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201011 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 !