-
ScrollBox et Threads
Bonjour à tous !
Voilà j'ai un petit soucis : J'ai un Thread qui doit écrire dans une ScrollBox existante passée en paramètre.
J'ai créé un composant de type TPanel et c'est celui ci que je veux ajouter à ma scrollBox.
Le problème est quand je lance mon thread je vois mon panel qui s'ajoute dans ma ScrollBox mais tout se freeze juste après et plus rien ne répond.
Si vous avez une idée d'où ça peut venir ;)
Merci
-
Un Thread qui modifie une ScrollBox, hum, c'est pas beau ça !
Il faut savoir qu'un Thread ne doit pas interagir avec la VCL sans passer par un Synchronize ou un système de Liste d'Action ...
-
J'ai synchronisé mon thread et ça ne marche pas non plus.
Pour faire simple en fait quand un thread se lance, je dois inscrire son nom dans cette scrollbox puis le retirer.
J'ai donc une procédure "Afaire" avec mes instructions et la création d'un TPanel dans la ScrollBox. Et dans Execute de mon thread j'ai : Synchronize(Afaire);
Quand je lance le thread l'objet Tpanel est créé dans ma scrollbox mais plus rien de répond apres cela.
-
Pourquoi ne pas simplement lancer le "AFaire" dans le constructeur du Thread, qui lui est lancé dans le Thread principal ... et pour le retirer, tu peux le faire dans OnTerminate (qui est déjà synchronizé)...
Après, qu'est-ce que contient ton "AFaire", si évidemment c'est une boucle, ...
Quel est donc ton besoin fonctionnel ? Une solution sans Thread pourrait peut-être s'envisager !
-
C'est un peu compliqué. En fait j'ai des procedures qui appellent des Webservices et me renvoient des fichiers XML. Mon but est de "tester" ces procédure pour savoir si les fichiers XML qu'elles renvoient soient corrects.
Pour ce faire, je lance autant de thread que de procédures. A l'intérieur du "A faire" de chaque thread, il y a l'appel de la procedure et le test du fichier XML qui est renvoyé.
Ce que j'aimerais, c'est qu'à chaque fois qu'un thread ce lance il créé un Tpanel dans ma scrollbox avec le nom du thread et le nombre d'erreurs rencontrées.
- Thread 1 - 3 erreurs - Status : En cours...
- Thread 2 - Aucune erreur - Status : Terminé
etc... mais qu'il m'actualise les erreurs en temps réél
-
Evidemment si dans AFaire tu as mis le code à paralléliser et que l'utilise via Synchonize ... en fait, tu neutralise l'intéret du thread ... sépare donc le code qui ajoute la barre dans le panel et le code qui lance le WebService
-
Je vais le faire sans passer par des threads, merci :)