Fenêtre pour patienter pendant traitement - Delphi/Pascal - Programmation
Marsh Posté le 14-03-2004 à 12:55:49
fais un Close de la fenêtre à la fin.
Sinon une autre solution serait de désactiver la fenêtre principale (Enabled), afficher une fenêtre non modale, faire le traitement, fermer la fenêtre, réactiver la fenêtre principale. L'intérêt c'est que tu n'es pas obligé de lancer ton traitement depuis la fenêtre d'attente.
Marsh Posté le 14-03-2004 à 14:21:46
ok,
sinon c'est propre de procéder ainsi?
Merci en tout cas.
Marsh Posté le 14-03-2004 à 14:42:36
Bon ça m'affiche la fenêre par contre ça n'a pas fini de la dessiner
On dirait que la rotation bouffe trop et fait frizer l'appli
Si l'image est petite alors ça fait un flash car trop rapide.
Marsh Posté le 14-03-2004 à 14:49:35
Tu peux mettre des Application.ProcessMessage de temps en temps pour ne pas que l'application ne semble bloquée.
On mieux : mettre ton traitement dans un thread séparé, mais c'est un peu plus difficile (on n'a rien sans rien )
Marsh Posté le 14-03-2004 à 20:55:25
Le thread on verra ça plus tard
Effectivement une fois la file de message traitée ça marche mieux.
Marsh Posté le 19-03-2004 à 08:03:38
J'essaierai de te retrouver le code que j'avais mis en place avec l'aide de mon maitre de stage il y a quelques années. Il faisait appel à des échanghes de messages, si je remet la main dessus, je te le post.
Marsh Posté le 12-04-2004 à 23:34:33
Dans votre fiche Modal:
TFiche= class(TForm)
...
Timer1: TTimer;
procedure Timer1OnTimer(Sender: TObject);
private
Cond: ^Boolean;
public
Constructor CreateFiche(Sender: AOwner, Condition: Boolean);
var Fiche: TFiche;
implementaion
Constructor CreateFiche(Sender: AOwner, Condition: Boolean);
begin
inherited Create(AOWner);
Cond:= @Condition;
end;
procedure Timer1OnTimer(Sender: TObject);
begin
if Cond^ then
Close;
end;
////////////////////////////////////////////////////////////////////////
Dans votre unite principale:
procedure FaireVotreTraitement;
var CondF: Boolean;
Toufik: TFiche;
begin
CondF:= False;
Toufik:= TFiche.CreateFiche(Self, CondF);
try
Toufik.ShowModal;
// votre traitement..
// ....
// et finalement:
CondF:= True;
finally
Toufik.Free;
end;
end;
Bonne chance...
Marsh Posté le 13-04-2004 à 10:55:20
pas besoin de remonter un vieux sujet pour donner un truc qui ne marchera pas
(ça bloquera sur le showmodal)
Marsh Posté le 14-03-2004 à 12:41:24
salut,
comment faire une fenêtre d'attente pendant qu'un traitement est en cours (rotation d'image).
Je pensais faire une fenêtre modale,
sur son onActivate lancer mon traitement, et à la fin de ce traitement affecter modalResult à mrOk.
mais ça ne semble pas marcher
le traitement ce fait bien (l'image est bien tournée), mais ma fenêtre modale ne ce ferme pas.
Comment faire? (proprement )