J'ai une boucle qui prend un nom de fichier à partir d'une zone de liste, effectue un appel system(), puis déplace ce nom vers une autre zone de liste. Le problème est, il ne déplace pas les noms de fichiers sur un à la fois, mais attend jusqu'à ce que la boucle entière est terminée et les déplace tous à la fois. Que ferais-je pour le faire fonctionner comme je le veux?Boucle ne met pas à jour les zones de liste tant que l'opération n'est pas répétée
la boucle:
for each(String^% file in filename)
{
int x = convert(file);
lbComplete->Items->Add(lbFiles->Items[0]); // place the completed file
lbFiles->Items->Remove(lbFiles->Items[0]); // in the other listbox
}
La fonction convert() qui contient l'appel système:
int convert(String^ file)
{
std::stringstream ss;
std::string dir, fileAddress, fileName, outputDir;
...
return system(ss.str().c_str());
}
Cela peut-il être un problème avec un appel d'actualisation écran/widget manquant entre les mises à jour? –
On dirait que le consensus le croit. Je ne savais pas que je devais le faire puisque je n'ai jamais vraiment travaillé avec des formulaires. Je suppose que je vais aller chercher comment – Justen
Dans votre boucle, vous ne donnez pas le temps au système de redessiner vos contrôles, vous devez autoriser les événements de peinture pour circuler entre chaque itération de boucle si vous voulez le voir sur l'écran - ce que L'appel dépend du type d'interface utilisateur que vous utilisez (que vous n'avez pas mentionné). –