[C++ Builder] Interruption de processus bloquant
Posté : mar. 17 mars 2015 17:46
Bonjour !
Je travaille sur Windows et sur le logiciel C++ Builder. Je travaille actuellement sur la création d'un logiciel pour mon entreprise, mais j'ai un soucis auquel je ne trouve pas vraiment de solutions. Je m'explique :
J'importe un fichier au format DXF et j'affiche une fenêtre de chargement pendant qu'il importe. Le soucis est le suivant : le processus qui gère cela est bloquant. Ce qui est balo, parce que du coup, impossible de cliquer sur le bouton annuler...
Je sais que je devrais utiliser les Threads, mais au vu de la tête des méthodes que j'aurais à faire dans mes threads, j'aimerais trouver une autre solution ! J'ai vu notamment la fonction ProcessMessages qui rend la main à l'application de base, mais je n'arrive pas à l'utiliser correctement...
Je me demande donc si il y a un moyen simple et sans thread de pouvoir cliquer sur le bouton annuler pour qu'il me change un boolean qui me fait sortir de ma fonction ? Je sais notamment que le ShowModal() permet en cliquant sur un bouton bien paramétré de quiter la fenetre, mais il bloque aussi l'exécution, ce qui n'est donc pas vraiment une solution en soi.
J'ai aussi essayé les threads en créant une nouvelle fenêtre qui exécute un thread dans le but de pouvoir annuler si l'on clique sur le bouton de la fenêtre. Le soucis est que le thread bloque la précédente application, cela signifie que si je clique sur annuler, l'annulation fonctionne, mais si je ne fit rien, il ne se passe rien de plus...
Je vous remercie d'avance !
Ps: Je suis désolé de ne pas pouvoir mettre de code, mais au vu du fait que le logiciel n'est pas libre je n'ai pas l'autorisation de divulguer du code sur internet :/
Je travaille sur Windows et sur le logiciel C++ Builder. Je travaille actuellement sur la création d'un logiciel pour mon entreprise, mais j'ai un soucis auquel je ne trouve pas vraiment de solutions. Je m'explique :
J'importe un fichier au format DXF et j'affiche une fenêtre de chargement pendant qu'il importe. Le soucis est le suivant : le processus qui gère cela est bloquant. Ce qui est balo, parce que du coup, impossible de cliquer sur le bouton annuler...
Je sais que je devrais utiliser les Threads, mais au vu de la tête des méthodes que j'aurais à faire dans mes threads, j'aimerais trouver une autre solution ! J'ai vu notamment la fonction ProcessMessages qui rend la main à l'application de base, mais je n'arrive pas à l'utiliser correctement...
Je me demande donc si il y a un moyen simple et sans thread de pouvoir cliquer sur le bouton annuler pour qu'il me change un boolean qui me fait sortir de ma fonction ? Je sais notamment que le ShowModal() permet en cliquant sur un bouton bien paramétré de quiter la fenetre, mais il bloque aussi l'exécution, ce qui n'est donc pas vraiment une solution en soi.
J'ai aussi essayé les threads en créant une nouvelle fenêtre qui exécute un thread dans le but de pouvoir annuler si l'on clique sur le bouton de la fenêtre. Le soucis est que le thread bloque la précédente application, cela signifie que si je clique sur annuler, l'annulation fonctionne, mais si je ne fit rien, il ne se passe rien de plus...
Je vous remercie d'avance !
Ps: Je suis désolé de ne pas pouvoir mettre de code, mais au vu du fait que le logiciel n'est pas libre je n'ai pas l'autorisation de divulguer du code sur internet :/