NEO ::: TEAM
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

NEO ::: TEAM

New Evolution Owner
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
AliExpress : Nouveaux codes promo (8€, 20€, 30€, 50€…)
Voir le deal

 

 Comment ne pas bloquer une application pendant un traitement

Aller en bas 
AuteurMessage
Admin
Fondateur
Fondateur
Admin


Nombre de messages : 197
Age : 40
Localisation : Tlemcen ( Algérie )
Date d'inscription : 04/12/2006

Comment ne pas bloquer une application pendant un traitement Empty
MessageSujet: Comment ne pas bloquer une application pendant un traitement   Comment ne pas bloquer une application pendant un traitement Icon_minitimeVen 12 Jan - 6:05

C'est un problème courant dans de grand traitements en boucle, les fenêtres des applications ne peuvent être rafraîchies par Windows tant que le traitement est en cours. La solution est d'appeler la méthode Application.ProcessMessages régulièrement afin que les messages de mise à jour de Windows puissent être traités. Ceci permet aussi de programmer un bouton "Stop" sur le traitement sans en venir au Alt-Ctrl-Sup.

Dans le code ci-dessous, la variable Stop indique que le bouton "Stop" à été appuyé et que la procédure doit être stoppée. L'appel de Application.ProcessMessages permet de mettre à jour normalement la fenêtre pendant l'exécution de la boucle.
Code:
[/center]
type
  TForm1 = class(TForm)
    ...
  private
    { Déclarations privées }
    Stop : Boolean;
    ...
  end;
...

procedure TForm1.BoutonMarcheClick(Sender: TObject);
Var i:Integer;
begin
  { Mise à faux de l'arrêt }
  Stop := False;
  I    := 0;
  { Traitement long }
  Repeat
    Inc(i);
    Label1.Caption := IntToStr(i);
    { Mise à jour des évènements en attente }
    Application.ProcessMessages;
  Until (i>=100000000)Or Stop;
end;

procedure TForm1.BoutonStopClick(Sender: TObject);
begin
  { Demande d'arrêt de la boucle }
  Stop:=True;
end;[center]
Revenir en haut Aller en bas
https://neo-team.forumactif.com
 
Comment ne pas bloquer une application pendant un traitement
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment fermer une application externe ?
» Comment obtenir le code de sortie de l'application ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
NEO ::: TEAM :: Informatique :: Les RADs :: Borland Delphi 4,5,6,7-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser