Rafraichir Main depuis un thread

Résolu
Signaler
Messages postés
11
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
8 février 2010
-
Messages postés
11
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
8 février 2010
-
Bonjour à tous,

voila mon problème :

j'ai crée un Thread que je lance depuis ma form Main. Dans ce Thread, diverses opérations sont effectuées et j'aimerais mettre à jour l'affichage de mon Main à partir de ce Thread : j'ai une ListBox qui affiche le status des opérations et je dois modifier un fichier txt avec les logs.

J'ai cherché de longues heures sur internet mais ne trouve rien.

D'avance merci pour vos messages ;)

7 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut,

non, non,

tu crées une procedure dans le Thread qui regroupe tous les appels à la mise à jour de l'interface (Label, ListBox, etc.)

et tu appels cette procédure avec Synchronize.

un exemple ici
l'exemple n'est pas terrible mais le principale y est pour la compréhension du mécanisme


[hr]@+Cirec
[hr]
Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Salut,
dans l'unité du Thread, tu peux mettre l'unité de ta fiche juste après "implementation", tu pourras ainsi appeller les composants de ta fiche (MaFiche.TrucChose).
Mais le plus propre (et efficace et rapide) reste quand même de créer un objet liste TStringList en mémoire, de le modifier depuis le thread puis de tout copier dans ta listbox une fois que le traitement est fini, puis de libérer l'objet.

Cordialement, Bacterius !
Messages postés
11
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
8 février 2010

Salut,

merci pour ta réponse, je vais tester ça ;).

Salutations.
Messages postés
11
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
8 février 2010

Salut cirec,

merci pour la réponse, j'ai fait exactement ça et ça marche nickel ;-).

Merci à tous, a+, syphon22
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
18
Salut,

Franchement, je ne vois pas l'intérêt de créer un Thread qui s'amuse à mettre à jour l'interface principale. Et surtout quand il s'agit de modifier un fichier .txt.

Bref, je serais plutôt de l'avis de Bacterius.
Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Salut,
ben moi en fait, j'ai toujours considéré que le thread le plus à même de gérer l'interface graphique, c'est le thread principal (celui qui est créé quand on lance le processus), et que tous les autres threads créés doivent simplement effectuer des calculs et stocker les résultats dans une mémoire globale en attente d'affichage par le thread principal

Cordialement, Bacterius !
Messages postés
11
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
8 février 2010

Salut Caribensila,

pour répondre à ton message, je n'ai pas créer le thread uniquement pour mettre à jour l'interface principale ou encore modifier un .txt, mais pour d'autres fonctionnalités.

Cordialement, A+.