Je me dis que pendant les retouches de Synedit_Editor, ma méthode actuelle pour faire fonctionner un programme qui a des bibliothèques en construction pourrait intéresser quelqu'un. Pas sûre mais va savoir.
La méthode habituelle est de mettre des portions de programme en INCLUDE. Mais cela a un inconvénient: c'est le lancement du programme. Tant qu'on est en Panoramic, en étant dans l'onglet du programme principale, la chose se fait normalement, mais si on est dans une partie Include, ce n'est plus le cas.
Pour synedit_Editor, il y a un autre problème: c'est panoramic.exe qui fait l'exécution, mais les includes ne sont pas incorporés.
Donc j'ai mis au point il y a quelque temps une méthode qui comble les inconvénients de celaà.
J'ai fait un chargeur, et pour l'exemple, je le sauvegarde: "C:\PRG_BASIQUE\Lanceur_pano.bas"
le voici:
- Code:
-
' raccourcis cde
' cumul de chaque partie du nouveau éditeur sans événement " directement en ajoutant chaque morceaux
' ------------------------------------------------------------------------------
' width 0,1200
dim dos$,f1$,f2$,f3$,f4$,f5$,f6$
dos$ = "C:\PANO\RE-editeur"
f1$ = dos$ + "prg_en_cours.bas"
f2$ = dos$ + "format_fonte.bas"
f3$ = dos$ + "biblio_bouton.bas"
f4$ = dos$ + "biblio_MEMO_COLOR.bas"
dLIST 10 :' on charge le premier programme, et on ajoute les autres dans le dlist
file_load 10,f1$
file_add 10,f2$
file_add 10,f3$
file_add 10,f4$
' =============== suite ==================
' on supprime la 5 lignes, et on remplace par ligne vide pour retirer CHAIN
item_delete 10,5 : item_insert 10,5,"' retiré chain >C:\PANO\RE-editeur\new_lanceur.bas<"
file_save 10,dos$ + "execute.bas" : wait 100
chain dos$ + "execute.bas"
Dans les variables f1$ f2$ ..., il y a le nom de chaque partie du programme. Dans la démonstration,la 5ème du programme sauvegardé dans la variable f1$, il y a:
CHAIN "C:\PRG_BASIQUE\Lanceur_pano.bas"Cela a pour effet de lancer le chargeur.
Dans les autres programme, il y a aussi au début, mais peut importe que ce soit la 5ème ou la proemière ligne, il y a aussi cette instruction. A partir du moment quelle est avant de lire une sub ou procédure, il y a pas de problème. Ce qui fait qu'une fois la page sauvegardée, que l'on soit dans le programme principal ou dans une librairie, le programme fonctionne.
Je mets en exemple différente page pour vous montrer.
1er programme - Code:
-
rem "==================================="
rem " programme de démo "
rem " - C:\PRG_BASIQUE\Démo.bas " ' NOM du programme principal
rem "==================================="
CHAIN "C:\PRG_BASIQUE\Lanceur_pano.bas"
' chaque onglet à une ligne de lancement d'un programme principal
' qui rassemble les différents onglets ou librairie
' puis l'execute
rem " ce programme est la première page d'un programme principal
rem " le programme est disons coupé, et les autres autres parties sont soit dans les onglets suivants, ou en mémoire
' lignes du programme de départ
if 1=2
init()
gui()
execution()
' des subs qui pourraient être mise ici, et bien d'autre.
end_if
END
' -------------
sub init()
end_sub
sub gui()
end_sub
sub execution()
end_sub
' on a coupé le programme ici, et mis des librairie ailleurs.
2eme programme - Code:
-
' librairie 1 sauvegardée en pour l'exemple: "C:\PRG_BASIQUE\lettre.bas"
CHAIN "C:\PRG_BASIQUE\Lanceur_pano.bas" : ' cela lancera l'exécution du programme
sub format_lettre() :' n'importe quoi
message "format_lettre()"
end_sub
etc...
3eme programme: - Code:
-
' librairie 2 sauvegardée en pour l'exemple: "C:\PRG_BASIQUE\boite.bas"
CHAIN "C:\PRG_BASIQUE\Lanceur_pano.bas" : ' cela lancera l'exécution du programme
sub format_boite() :' n'importe quoi
message "format_boite()"
end_sub
etc...
" ET ON POURRA FAIRE PAREIL AVEC AUTANT DE LIBRAIRIE QU'ON VEUT............
Cela fait que de cette façon le programme est lancé par
deux instructions CHAIN. La première appelle à l'assembleur des morceaux du programme, et dans celui, on retrouve CHAIN du programme assemblé. Quelque soit l'onglet où on se trouve, on peut exécuter notre programme principal.
RESTE UN PROBLÈME: c'est de pouvoir savoir où se situe une erreur si elle ne se situe pas dans la page 1 du programme.
J'utilise un éditeur de texte qui est Edit-Pad. Celui-ci a la particularité et il n'est pas le seul, selon le réglage des options, de recharger les pages automatiquement, à chaque sauvegarde du texte. Donc dans EditPat, j'ouvre dans l'exemple du haut: dos$ + "execute.bas". Le programme bas étant chargé, et ayant les n° de lignes, à chaque lancement du programme basic, il y a sauvegarde du programme assemblé, et automatiquement, celui-ci est à jour. Une erreur en ligne 1200, on y va, et on sait où elle se trouve.
Histoire de mettre un lien pour EDIT-PADPour moi, il est deulement dommage qu'au lancement du programme avec Synedit_Editor, il n'y ait pas de sauvegarde automatique. A propos pour Synedit, il manque l'instrucion: 2D_FILL_COLOR