Actuellement, Panoramic_Editor permet de lancer directement un programme pour test, par le menu Exécuter (ou l'icône "éclair"). Panoramic crée alors un fichier Panoramic.exe (le nom est fixe et imposé) qui est placé dans un dossier temporaire dans les données application de l'utilisateur.
Très bien.
Maintenant, dans Panoramic_Editor, on peut avoir plusieurs onglets. Chacun peut contenir le code d'un programme. Et chacun peut être lancé de cette manière. Mais alors, on comprend tout de suite qu'il y aura un conflit lorsqu'on essaie de lancer simultanément les programmes de deux ou plusieurs onglets. Il en est de même lorsqu'on lance deux instances de Panoramic_Editor - on ne peut pas lancer l'exécution du code d'un onglet de chacune de ces instances sans provoquer de sérieux conflits.
Ces conflits sont de plusieurs natures:
1. le nom de fichier et le dossier étant le même, il y a des problèmes d'accès.
2. Panoramic_Editor ne peut plus se synchroniser avec le programme qu'il a lancé. Tous ont le même nom, et visiblement, Panoramic_Editor ne mémorise pas le handle du process qu'il crée
...
Certes, le langage Panoramic n'a à priori pas les commandes, fonctions etc pour gérer une synchronisation entre plusieurs applications Panoramic simultanées. Ce sont les règles de Windows qui s'appliquent, au niveau de l'accès aux fichiers et autres ressources. Soit.
Par contre, j'aimerais vraiment faire marcher simultanément les programmes à partir de plusieurs onglets de Panoramic_Editor. Avec mon programme Synedit_Editor, j'arrive à le faire: je soumets simplement le code de chaque onglet à une instance du programme "exécuteur" de Panoramic (lui aussi appelé Panoramic.exe, d'ailleurs !), et les processus Windows indépendants qui sont créés alors, peuvent cohabiter normalement, comme tous les programmes Windows.
Alors, ma suggestion est la suivante: changer le comportement de la fonction "exécuter" de Panoramic_Editor d'une des deux manières suivantes:
1. méthode préférée:
à partir d'un onglet, créer, non plus le fichier Panoramic.exe, mais le fichier Panoramic_n.exe dans le dossier temporaire, n étant le numéro de l'onglet (1, 2, ...).
2. méthode alternative:
lancer le code de l'onglet actif en le soumettant à l'exécuteur Panoramic.exe (comme je le fais dans Synedit_Editor). Il n'y aura plus de création d'un Panoramic.exe temporaire.
Dans les deux cas:
Mémoriser pour chaque programme lancé, le handle du processus créé, dans une table liée à la liste des onglets. Faire agir la fonction Stop du menu sur le handle du processus pémorisé pour l'onglet actif, permettant ainsi l'arrêt sélectif d'un des programmes lancés, en fonction de l'onglet activé.
Ceci faciliterait largement la mise au point de programmes devant se synchroniser. Actuellement, je dois les générer chacun en EXE et lancer les EXEs. Et je perds forcément la reconnaissance des erreurs d'exécution avec le positionnement automatique sur la ligne en faute.