Rafraichir Main depuis un thread

Résolu
syphon22 Messages postés 11 Date d'inscription jeudi 17 août 2006 Statut Membre Dernière intervention 8 février 2010 - 19 janv. 2010 à 09:26
syphon22 Messages postés 11 Date d'inscription jeudi 17 août 2006 Statut Membre Dernière intervention 8 février 2010 - 20 janv. 2010 à 10:02
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

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
19 janv. 2010 à 15:33
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]
3
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
19 janv. 2010 à 13:48
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 !
0
syphon22 Messages postés 11 Date d'inscription jeudi 17 août 2006 Statut Membre Dernière intervention 8 février 2010
19 janv. 2010 à 14:35
Salut,

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

Salutations.
0
syphon22 Messages postés 11 Date d'inscription jeudi 17 août 2006 Statut Membre Dernière intervention 8 février 2010
19 janv. 2010 à 15:40
Salut cirec,

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

Merci à tous, a+, syphon22
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
20 janv. 2010 à 04:11
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.
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
20 janv. 2010 à 06:01
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 !
0
syphon22 Messages postés 11 Date d'inscription jeudi 17 août 2006 Statut Membre Dernière intervention 8 février 2010
20 janv. 2010 à 10:02
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+.
0
Rejoignez-nous