IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Arrêter un IdThreadComponent lors de son exécution


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut Arrêter un IdThreadComponent lors de son exécution
    Salut,

    Je développe un software avec Delphi 2006 et Indy 10 sous WinXP.

    J'ai un IdThreadComponent qui effectue une tâche dans l'évènement Onrun.

    J'aimerais en cliquant sur un bouton l'arrêter si il travaille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button5Click(Sender: TObject);
    begin
      if (IdThread_Test.Stopped = False) then
        begin
          IdThread_Test.Stop;
        end;
    end;
    Malheureusement ce code ne fonctionne pas ...

    D'avance merci pour vos réponses.

  2. #2
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    Personne n'a la moindre idée de comment arrêter un IdThreadComponent pendant qu'il travaille ?

  3. #3
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    j'ai pas trouver la propriété stpop
    voir simplement if ActiveThreads then TerminateThreads
    désolé

  4. #4
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    J'ai essayé plusieurs possibilités d'après ce que tu m'as dis edam :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button5Click(Sender: TObject);
    begin
      if (IdThread_Test.Stopped = False) then
        begin
          IdThread_Test.Terminate;
        end;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button5Click(Sender: TObject);
    begin
      if (IdThread_Test.Active = True) then
        begin
          IdThread_Test.Terminate;
        end;
    end;
    Aucune des deux ne fonctionne ...

    Il doit surement y avoir moyen d'arrêter un Thread qui travaille !

  5. #5
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    comment sait tu que votre thréad n'est pas arrété??

  6. #6
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    Parce que j'ai créé justement un Thread spécialement pour apprendre à l'arrêter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    procedure TForm1.IdThread_TestRun(Sender: TIdThreadComponent);
    var
      i : Integer;
     
    begin
      for i := 0 to 50000 do
        begin
          Label1.Caption := IntToStr(i);
        end;
      IdThread_Test.Stop;
    end;
     
    procedure TForm1.PlayClick(Sender: TObject);
    begin
      IdThread_Test.Start;
    end;
     
    procedure TForm1.StopClick(Sender: TObject);
    begin
      if (IdThread_Test.Active = True) then
        begin
          IdThread_Test.Stop;
        end;
    end;
    Je met donc dans le bouton Stop la fonction qui est censé arrêter le Thread et tant que le Label1 continue à afficher des nombres c'est que j'ai pas réussi à l'arrêter ...

Discussions similaires

  1. trigger me signal une erreur lors de son exécution
    Par scofild20 dans le forum SQL
    Réponses: 7
    Dernier message: 02/05/2009, 14h22
  2. Réponses: 7
    Dernier message: 09/11/2008, 22h33
  3. Réponses: 2
    Dernier message: 07/01/2008, 18h01
  4. Arrêter une macro durant son exécution
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/10/2007, 14h30
  5. Limiter la charge lors de l'exécution de son application
    Par Bazunga dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/07/2007, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo