Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Un éditeur MultiPlatforme Panoramic, FBpano, etc... | |
| | |
Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Jeu 3 Oct 2019 - 18:14 | |
| Bonjour à tous ! Cela fait un petit moment que l'idée me trotte dans la tête. D'autres avaient déjà émis l'idée il y a 2 ou 3 ans... Après avoir acquis une certaine connaissance du basic Panoramic, je suis en train de découvrir FBPano, l’œuvre de notre ami Jean Debord. Que je remercie pour son travail. Il s'agit d'un langage proche de Panoramic et en même temps dérivé de FreeBasic. Il est donc tout naturel de se dire qu'un éditeur permettant les 2 syntaxes serait le bienvenu ! J'y réfléchi depuis un certain temps mais le manque de connaissances de FBPano et FreeBasic en général me faisait toujours reculer... Voyant les difficultés rencontrées par Jack sur l'éditeur Panoramic, je me dit que c'est peut être le bon moment pour se lancer... Mon idée serai de réaliser un éditeur en FBPano, car plus évolué que Panoramic et permettant plus de choses (enfin il me semble...) en donnant la possibilité aux utilisateurs de créer des codes dans les 2 langages. Cet éditeur pourrai intégrer les outils de base tels que la gestion des couleurs, des touches, des code CHR$/ASC. On peut même envisager plus de choses comme dans PanExpress : Calculatrice, Bloc-notes, Débogueur, ajout de code automatique, etc. La liste n'est pas exhaustive... C'est une idée qui me semble intéressante à la fois pour avoir un éditeur complet et stable, mais aussi pour pouvoir utiliser les 2 langages dérivés de FB que sont Panoramic et FBPano. Bien sûr pour l'instant, cela n'est qu'une idée... Et les premiers intéressés qui sont Jean et Jack doivent aussi donner leur accord pour un projet de cet ordre puisqu'il inclus l'usage des 2 langages. Et s'il y a une suite, je verrai bien le développement de ce projet avec la communauté... Je suis prêt à y participer activement mais je souhaiterai partager les idées et les manières de faire de chacun. En plus un projet en commun relancerai l'activité du forum ! Même si certain ne se sentent pas la capacité ou les compétences dans la programmation du code, ils peuvent toujours intervenir dans le coté pratique ou esthétique ou de tout autre ordre... Pour le moment c'est avant tout un bouillon de culture et un échange actif que je souhaite sur le sujet. Alors n'hésitez pas à donner votre point de vue et vos idées... Merci d'avance pour vos retours ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 3 Oct 2019 - 18:22 | |
| | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Jeu 3 Oct 2019 - 18:49 | |
| C'est un point de vue ou une idée J'ai du mal a cerner... Et sinon tu en penses quoi ?? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 3 Oct 2019 - 19:23 | |
| Es tu vraiment sûr de vouloir savoir ce que je pense ?
Il y a quelques temps je disais qu'à vouloir courrir plusieurs lièvres....
Que Panoramic devait être un langage et un seul pas 20 versions différentes faisant pipi chacune dans leur coin. Que l' éditeur devait être développé et le langage sécurisé et documenté avant d'en rajouter une couche. Sinon, nous allions perdre tout le monde.
C'est fait.
Maintenant le forum est devenu un magama de sujets dont certains n'ont pas lieu d'être ici. FBpano est un langage à part entière et devrait avoir son propre forum, son propre site etc... Même si il est dérivé de Panoramic. Les nouveaux peuvent s'y perdre...et comme on a déjà perdu les vieux....
Bref là tu nous proposes de nous lancer, à combien déjà ?... on est plus que 3 ! dans un éditeur multi-langages alors qu' on arrive pas à en avoir un simple pour Panoramic... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Jeu 3 Oct 2019 - 19:31 | |
| Eh bien justement c'est peut être le moment de fédérer les troupes qu'il reste autour d'un projet central ! Et faire en sorte que les derniers ne désertent pas...
Même si le projet n'intéresse pas tout le monde, il y aura toujours des infos, des fils de discussions, enfin bref de quoi donner du mouvement au forum...
Enfin c'est ma vision des choses ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 3 Oct 2019 - 19:43 | |
| Je suis moi aussi en train de regarder ailleurs. J'aimerai que Panoramic vive très vieux mais là en une version j'ai l'impression d'avoir reculé de 1 ans. je suis trop dépité de cette dernière mouture. | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Ven 4 Oct 2019 - 9:36 | |
| Un éditeur pouvant traiter les 2 langages serait très utile puisqu'on pourrait par exemple éditer à la fois un programme principal écrit en PANORAMIC et des DLL écrites en FBPano.
Tout ce qu'on a à faire, c'est 2 listes de mots-clés + 1 option pour choisir le langage.
Concernant la place de FBPano sur le forum, j'envisage 2 solutions (non incompatibles) :
1) Transformer FBPano en un générateur de programmes FreeBASIC avec appels directs à FLTK, et transfert de la discussion sur le forum FreeBASIC.
2) Ajouter à FBCroco les principales fonctionnalités de FBPano et laisser la discussion de FBCroco sur ce forum puisque c'est Jack qui a lancé le projet de "Crocodile Basic".
Mais tout cela prendra du temps. En attendant, la discussion du projet de Minibug devrait pouvoir se poursuivre dans la section consacrée à FBPano (section créée spécialement par Jack, que je remercie au passage).
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Ven 4 Oct 2019 - 9:49 | |
| Bonjour Jean ! - Citation :
- Tout ce qu'on a à faire, c'est 2 listes de mots-clés + 1 option pour choisir le langage.
C'est exactement l'idée que j'ai en tête avec un éditeur développé en FBPano. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 5 Oct 2019 - 21:20 | |
| J'ai téléchargé FBIde pour FreeBasic dans le but d'apprendre. C'est un peu ce que je souhaiterai avoir avec Panoramic. Un éditeur simple, facile à prendre en main avec préview et compilation. On dirait qu' il est basé sur un Synedit plus évolué.
Actuellement, je me sers de Notepad++ et de make_exe.exe. Panoramic_Editor me déprime. Quand je pense que mon source est près je le passe au compilateur en priant St Jack pour que cela fonctionne. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Dim 6 Oct 2019 - 11:46 | |
| Salut Yannick
Regarde aussi FBPano de Jean que tu peux télécharger depuis son webdav. tout est dans la signature comme d'hab...
Tu y trouvera son éditeur que l'on peux transformer et utiliser comme base de départ pour Panoramic. Il suffit juste d'ajouter la liste des mots clés et d'adapter le lancement des fichiers avec Make.exe.
Ce qui n'est pas le plus dur... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 6 Oct 2019 - 13:38 | |
| Je vais regarder... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Oct 2019 - 14:07 | |
| Je fais un commentaire ici pour ne pas ouvrir un nouveau sujet. D' abord, FELICITATIONS à Jean pour la doc de FBPano. Je suis épaté, enfin une doc en français que je comprends. Je n'ai pas approfondi mais déjà, je comprends ce qui est écrit. Continu comme çà c'est excellent. Pour ce qui est de pondre un éditeur en FBPano, je n'ai pas tout lu mais aurait on tous les objets nécessaires ? Pourrait on avoir un synedit dernière génération avec le replis de ligne ? | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Ven 11 Oct 2019 - 19:58 | |
| Merci Yannick Pour son projet, Minibug est parti de l'exemple ex81 dans le dossier exemples\FLTK. C'est un éditeur de textes généraliste. Pour en faire un éditeur de programmes il faudra lui ajouter quelques options, dont la coloration syntaxique. Pour le pliage de codes il faudra sans doute combiner les objets TREEVIEW et TEXT_EDITOR. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Oct 2019 - 20:25 | |
| Pour la coloration syntaxique j' avais pondu un truc avec un objet de kgf il me semble avant que klaus suivi de jack ne mettent synedit à dispo. Donc c' est faisable. C'était dans PPE la toute première version, il y a 2ans voir un peu plus... ...le bidule faisait dans les 5500 lignes.
Dernière édition par Yannick le Ven 11 Oct 2019 - 20:42, édité 1 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Ven 11 Oct 2019 - 20:28 | |
| Franchement, j'ai parcouru toute la doc de Jean et j'avoue que ça calme ! Rien qu'à la vue des possibilités de chaque objet je suis déjà baba... C'est impressionnant tout ce qu'il est possible de faire. Le plus gros problème c'est d'assimiler toutes ces nouveautés. On risque bien d’assaillir Jean de mille questions... PS : Pour la coloration syntaxique t'embêtes pas un simple fichier avec les mots clés suffira a déterminer le langage Panoramic ! Comme disait Jean décortiques un peu l'exemple et tu aura du concret... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Oct 2019 - 20:46 | |
| J'ai pas pu tout lire,journée chargé. Tu as vu la possibilité de mettre des icônes dans les menus et les boutons ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Ven 11 Oct 2019 - 20:48 | |
| | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Ven 11 Oct 2019 - 20:55 | |
| Un extrait de la doc concernant les icônes dans les menus : Consultes la doc de toute urgence et tu sera surpris des possibiltés... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Ven 11 Oct 2019 - 21:00 | |
| | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Oct 2019 - 21:13 | |
| Quand j'ai abordé le python il y a plus longtemps que çà encore la librairie était TclTk puis python a évolué et je n'y ai plus rien compris. Je vais être rabat-joie mais je ne comprends le refus de jack de certaines évolutions graphiques d'autant plus que kgf a des soucis sur certaines fonctions et que Klaus a disparu des écrans radar (Ce qui m'inquiète de plus en plus j'espère que c'est une absence volontaire). Je ne dis pas que je ne me servirai pas un jour de FBPano mais j'ai du boulot pour apprendre avant. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Oct 2019 - 23:31 | |
| J'ai ouvert l'exemple 64 dans FBPano Si je compile puis execute le "main_menu" a les bords arrondi et pas d'icone Si je compile puis je lance le *.exe le "main_menu" a les bords a angle droits et j'ai les icônes. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Sam 12 Oct 2019 - 0:22 | |
| Jean a expliqué qu'il y avait un problème avec l’éditeur. Il est préférable de le faire depuis une commande DOS CMD et le lancer en ligne de commande en tapant : fbpano programme_a_convertirN'oublie pas de mettre un PATH dans ta configuration pour le chemin du compilateur FBPano.exe. Du coup j'ai avancé encore un peu à la compréhension de FBPano en modifiant quelques petites choses sur l'éditeur. Je dois encore rajouter la taille de la police, les couleurs et le choix des mots clés... Voila ce que ça donne pour le moment : - Spoiler:
- Code:
-
' ********************************************************************** ' Editeur FBPano, d'apres le programme de demonstration de FLTK : www.fltk.org/doc-1.3/editor.html ' Modification par MiNiBuG ' **********************************************************************
CONST FORM_WIDTH = 750 ' Largeur de la fenetre principale CONST FORM_HEIGHT = 500 ' Hauteur de la fenetre principale CONST FONT_SIZE = 16 ' Taille des caracteres CONST FONT_COLOR = FL_WHITE ' Couleur du texte CONST BKG_COLOR = FL_DARK_BLUE ' Couleur du fond CONST LNUM_COLOR = FL_RED ' Couleur des numeros de lignes CONST LNUM_WIDTH = 60 ' Largeur de la marge pour num. lignes
DIM search$ ' Chaine pour la recherche DIM find$, rep$ ' Chaines pour le remplacement DIM nf% ' Nb de polices DIM fontnum%() ' Numéros des polices DIM fontname$() ' Noms des polices DIM font% = FL_COURIER ' Police selectionnee DIM i% ' Variable de boucle
ENUM GUI fmMain menu1, editor1, buffer1 fmReplace edFind, edReplace, btRepAll, btRepNext, btCancel fmParametres lsPolice, btPolice, btWrap, btLine END_ENUM
FORM fmMain, 15, 35, FORM_WIDTH, FORM_HEIGHT, "Editeur" FORM_BEGIN fmMain MENU menu1, 0, 0, FORM_WIDTH, 25 TEXT_EDITOR editor1, 0, 25, FORM_WIDTH, FORM_HEIGHT - 25 TEXT_BUFFER buffer1 FORM_END fmMain
FORM fmReplace, 200, 200, 380, 110, "Remplacement" FORM_BEGIN fmReplace EDIT edFind, 110, 10, 260, 25, "Chercher :" EDIT edReplace, 110, 40, 260, 25, "Remplacer par :" BUTTON btRepAll, 10, 75, 110, 25, "Remplacer tout" BUTTON btRepNext, 130, 75, 170, 25, "Remplacer Suivant", , T_Button_Return BUTTON btCancel, 310, 75, 60, 25, "Fermer" FORM_END fmReplace
FORM fmParametres, 200, 200, 380, 420, "Liste des polices" FORM_BEGIN fmParametres LIST lsPolice, 5, 5, 180, 375 BUTTON btPolice, 5, 385, 370, 30, "Valider" nf = FONT_LIST(fontnum(), fontname()) FOR i = 0 TO nf - 1 LIST_ITEM_ADD lsPolice, "@S12@F" & "@." & fontname(i) NEXT i LIST_ITEM_SELECT lsPolice, 1 BUTTON btWrap, 190, 5, 185, 40, "Retour à la ligne", ,T_Button_Light BUTTON btLine, 190, 50, 185, 40, "Affichage lignes", ,T_Button_Light MARK_ON btLine FORM_END fmParametres
ON_CLICK btRepAll, remplacer_tout ON_CLICK btRepNext, remplacer_suivant ON_CLICK btCancel, annuler_remplacer ON_CLICK lsPolice, changer_police ON_CLICK btPolice, cacher_parametres ON_CLICK btWrap, wrap ON_CLICK btLine, affichage_numlines
MENU_ITEM_ADD menu1, "&Fichier/&Nouveau ", "Ctrl+N", , nouveau MENU_ITEM_ADD menu1, "&Fichier/&Ouvrir ", "Ctrl+O", , ouvrir MENU_ITEM_ADD menu1, "&Fichier/&Enregistrer ", "Ctrl+E", FL_MENU_DIVIDER, enregistrer MENU_ITEM_ADD menu1, "&Fichier/&Quitter ", "Ctrl+Q", , quitter
MENU_ITEM_ADD menu1, "&Edition/Co&uper ", "Ctrl+X", , couper MENU_ITEM_ADD menu1, "&Edition/&Copier ", "Ctrl+C", , copier MENU_ITEM_ADD menu1, "&Edition/C&oller ", "Ctrl+V", , coller
MENU_ITEM_ADD menu1, "&Recherche/&Rechercher ", "Ctrl+F", , rechercher MENU_ITEM_ADD menu1, "&Recherche/Rechercher le &suivant ", "F3", , rechercher_suivant MENU_ITEM_ADD menu1, "&Recherche/R&emplacer ", "Ctrl+R", , remplacer
MENU_ITEM_ADD menu1, "&Options/&Paramètres ", "Ctrl+P", , choix_parametres
COLOR_FL editor1, BKG_COLOR FONT_TEXT editor1, font, FONT_SIZE COLOR_TEXT_FL editor1, FONT_COLOR COLOR_CURSOR_FL editor1, FONT_COLOR COLOR_NUMLINES_FL editor1, LNUM_COLOR EDITOR_NUMLINES editor1, LNUM_WIDTH, font, FONT_SIZE
EDITOR_SET_BUFFER editor1, buffer1
SET_RESIZABLE fmMain
START fmMain
' ---------------------------------------------------------------------- ' Sous-programmes utilitaires ' ----------------------------------------------------------------------
FUNCTION trouve% (s$, p%, msg%) ' Recherche la chaine s à partir de la position du curseur ' La position de la chaine trouvee est retournee dans p ' msg = TRUE pour afficher le message d'erreur
p = EDITOR_GET_INSERT_POS(editor1) IF BUFFER_SEARCH_FORWARD(buffer1, p, s, p) = 0 THEN IF msg THEN MESSAGE "Chaîne """ + s + """ non trouvée !" trouve = FALSE ELSE trouve = TRUE END_IF END_FUNCTION
SUB update_editor (p%, s1$, s2$, rpl%) ' Met a jour l'editeur apres recherche ou remplacement ' p = position de la chaine recherchee ' s1 = chaine recherchee ' s2 = chaine de remplacement ' rpl = indique si remplacement
DIM p1%
p1 = p + LEN(s1) BUFFER_SELECT buffer1, p, p1
IF rpl THEN BUFFER_REMOVE_SELECT buffer1 BUFFER_INSERT buffer1, p, s2 p1 = p + LEN(s2) BUFFER_SELECT buffer1, p, p1 p = p1 END_IF
EDITOR_SET_INSERT_POS editor1, p1 EDITOR_SHOW_INSERT_POS editor1 END_SUB
' ---------------------------------------------------------------------- ' Sous-programmes associes aux evenements ' ----------------------------------------------------------------------
SUB nouveau TEXT buffer1, "" CAPTION fmMain, "Editeur" END_SUB
SUB ouvrir DIM fname$ fname = FILE_NAME("Ouvrir", "Fichier texte (*.txt)", CURDIR, 0) IF fname = "" OR FILE_EXISTS(fname) = 0 THEN EXIT_SUB BUFFER_FILE_LOAD buffer1, fname CAPTION fmMain, fname END_SUB
SUB enregistrer DIM fname$ fname = FILE_NAME("Enregistrer", "Fichier texte (*.txt)", CURDIR, 0) IF fname = "" THEN EXIT_SUB BUFFER_FILE_SAVE buffer1, fname END_SUB
SUB quitter HIDE fmMain END_SUB
SUB couper EDITOR_CUT editor1 END_SUB
SUB copier EDITOR_COPY editor1 END_SUB
SUB coller EDITOR_PASTE editor1 END_SUB
SUB rechercher DIM p% search = MESSAGE_INPUT("Rechercher", "Rechercher", search) IF search <> "" THEN IF trouve(search, p, TRUE) THEN update_editor p, search, "", FALSE END_IF END_SUB
SUB rechercher_suivant DIM p% IF search = "" THEN search = message_input("Rechercher", "Rechercher", search) END_IF IF search <> "" THEN IF trouve(search, p, TRUE) THEN update_editor p, search, "", FALSE END_IF END_SUB
SUB remplacer SHOW fmReplace END_SUB
SUB remplacer_suivant DIM p% find = GET_TEXT(edFind) IF find = "" THEN EXIT_SUB rep = GET_TEXT(edReplace) IF trouve(find, p, TRUE) THEN update_editor p, find, rep, TRUE END_SUB
SUB remplacer_tout DIM p%, found%, n% find = GET_TEXT(edFind) IF find = "" THEN EXIT_SUB rep = GET_TEXT(edReplace) found = trouve(find, p, TRUE) IF NOT found THEN EXIT_SUB WHILE found n = n + 1 update_editor p, find, rep, TRUE found = trouve(find, p, FALSE) END_WHILE MESSAGE "Chaîne """ & find & """ remplacée " & n & " fois." END_SUB
SUB annuler_remplacer HIDE fmReplace END_SUB
SUB wrap DIM n% IF CHECKED(btWrap)=1 THEN n = 1 ELSE n = 0 EDITOR_WRAP editor1, n END_SUB
SUB affichage_numlines DIM n% IF CHECKED(btLine)=1 THEN n = LNUM_WIDTH ELSE n = 0 FONT_TEXT editor1, font, FONT_SIZE EDITOR_NUMLINES editor1, n, font, FONT_SIZE REDRAW END_SUB
SUB choix_parametres SHOW fmParametres END_SUB
SUB changer_police DIM f$ f = LIST_ITEM_READ(lsPolice, LIST_ITEM_INDEX(lsPolice)) f = MID(f, INSTR(f, ".") + 1) font = NUM_FONT(f) FONT_TEXT editor1, font, FONT_SIZE EDITOR_NUMLINES editor1, LNUM_WIDTH, font, FONT_SIZE REDRAW END_SUB
SUB cacher_parametres HIDE fmParametres END_SUB
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Sam 12 Oct 2019 - 8:50 | |
| Bonjour Jean, J'ai une question concernant le programme compilé. Il y a toujours une fenêtre DOS attachée avec. Comment s'en séparer car je vois que dans ton éditeur tu n'as pas ce problème ?! Edit : Je crois avoir trouvé la réponse en ajoutant #compile -gui au début du code... | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Sam 12 Oct 2019 - 9:13 | |
| - Minibug a écrit:
Edit : Je crois avoir trouvé la réponse en ajoutant #compile -gui au début du code... Oui c'est bien cela La fenêtre DOS est très commode en cours de mise au point car on peut y envoyer des messages par un simple PRINT. PS. Je regarde ton nouvel éditeur, ainsi que les problèmes signalés par Yannick. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... Sam 12 Oct 2019 - 10:40 | |
| Bonjour Jean ! Merci pour ton retour. Je suis encore bloqué avec la taille de la police de l'éditeur. J'ai la constante déclarée sous FONT_SIZE en début de programme qui a la valeur 16 j'ai ensuite la variable fontsize% qui me sert à récupérer la valeur du track bar avec GET_POSITION() Jusque là tous va bien. Mais c'est après que je suis perdu... car si je code : FONT_TEXT editor1, font, fontsize EDITOR_NUMLINES editor1, n, font, fontsizeil me dit que la variable n'est pas déclarée ?! Je vois bien le problème mais je ne sais pas le résoudre... Comment faire le lien entre FONT_SIZE la constante et fontsize% la variable ?! J'ai besoin de tes lumières. Pourrai tu par la même occasion s'il te plais m'expliquer comment mettre en place la liste des mots clé. Merci d'avance. ci-joint le code : - Spoiler:
- Code:
-
' ********************************************************************** ' Editeur FBPano, d'apres le programme de demonstration de FLTK : www.fltk.org/doc-1.3/editor.html ' Modification par MiNiBuG ' **********************************************************************
#compile -gui
CONST FORM_WIDTH = 750 ' Largeur de la fenetre principale CONST FORM_HEIGHT = 500 ' Hauteur de la fenetre principale CONST FONT_SIZE = 16 ' Taille des caracteres CONST FONT_COLOR = FL_BLACK ' Couleur du texte CONST BKG_COLOR = FL_WHITE ' Couleur du fond CONST LNUM_COLOR = FL_BLACK ' Couleur des numeros de lignes CONST LNUM_WIDTH = 60 ' Largeur de la marge pour num. lignes
DIM search$ ' Chaine pour la recherche DIM find$, rep$ ' Chaines pour le remplacement DIM nf% ' Nb de polices DIM fontnum%() ' Numéros des polices DIM fontname$() ' Noms des polices DIM fontsize% ' Taille de la police DIM font% = FL_COURIER ' Police selectionnee DIM i% ' Variable de boucle DIM keywords$ ' Liste des mots_cles
ENUM GUI fmMain ' Form principale menu1, editor1, buffer1 fmReplace ' Form rechercher/remplacer edFind, edReplace, btRepAll, btRepNext, btCancel fmParametres ' Form paramètres lsPolice, tbSize, btPolice, btWrap, btLine END_ENUM
FORM fmMain, 15, 35, FORM_WIDTH, FORM_HEIGHT, "Editeur" FORM_BEGIN fmMain MENU menu1, 0, 0, FORM_WIDTH, 25 TEXT_EDITOR editor1, 0, 25, FORM_WIDTH, FORM_HEIGHT - 25 TEXT_BUFFER buffer1 FORM_END fmMain
FORM fmReplace, 200, 200, 380, 110, "Remplacement" FORM_BEGIN fmReplace EDIT edFind, 110, 10, 260, 25, "Chercher :" EDIT edReplace, 110, 40, 260, 25, "Remplacer par :" BUTTON btRepAll, 10, 75, 110, 25, "Remplacer tout" BUTTON btRepNext, 130, 75, 170, 25, "Remplacer Suivant", , T_Button_Return BUTTON btCancel, 310, 75, 60, 25, "Fermer" FORM_END fmReplace
FORM fmParametres, 200, 200, 380, 420, "Liste des polices" FORM_BEGIN fmParametres LIST lsPolice, 5, 5, 180, 375 nf = FONT_LIST(fontnum(), fontname()) FOR i = 0 TO nf - 1 LIST_ITEM_ADD lsPolice, "@S12@F" & "@." & fontname(i) NEXT i LIST_ITEM_SELECT lsPolice, 1 TRACK_BAR tbSize, 190, 5, 185, 20, "Taille de la police", , T_Track_Val POSITION_RANGE tbSize, 8, 30, 1 POSITION tbSize, fontsize BUTTON btWrap, 190, 50, 185, 40, "Retour à la ligne", ,T_Button_Light BUTTON btLine, 190, 95, 185, 40, "Affichage lignes", ,T_Button_Light MARK_ON btLine BUTTON btPolice, 5, 385, 370, 30, "Fermer" FORM_END fmParametres
ON_CLICK btRepAll, remplacer_tout ON_CLICK btRepNext, remplacer_suivant ON_CLICK btCancel, annuler_remplacer ON_CLICK lsPolice, changer_police ON_CLICK btPolice, cacher_parametres ON_CLICK tbSize, changer_taille_police ON_CLICK btWrap, wrap ON_CLICK btLine, affichage_numlines
MENU_ITEM_ADD menu1, "&Fichier/&Nouveau ", "Ctrl+N", , nouveau MENU_ITEM_ADD menu1, "&Fichier/&Ouvrir ", "Ctrl+O", , ouvrir MENU_ITEM_ADD menu1, "&Fichier/&Enregistrer ", "Ctrl+E", FL_MENU_DIVIDER, enregistrer MENU_ITEM_ADD menu1, "&Fichier/&Quitter ", "Ctrl+Q", , quitter
MENU_ITEM_ADD menu1, "E&dition/Co&uper ", "Ctrl+X", , couper MENU_ITEM_ADD menu1, "E&dition/&Copier ", "Ctrl+C", , copier MENU_ITEM_ADD menu1, "E&dition/Co&ller ", "Ctrl+V", FL_MENU_DIVIDER, coller MENU_ITEM_ADD menu1, "E&dition/&Rechercher ", "Ctrl+F", , rechercher MENU_ITEM_ADD menu1, "E&dition/Rechercher le &suivant ", "F3", , rechercher_suivant MENU_ITEM_ADD menu1, "E&dition/R&emplacer ", "Ctrl+R", , remplacer
MENU_ITEM_ADD menu1, "&Exécution/E&xécuter ", "F9", , executer
MENU_ITEM_ADD menu1, "O&ptions/&Syntaxe/&Panoramic ", "F1", FL_MENU_RADIO + FL_MENU_VALUE, syntaxe_panoramic MENU_ITEM_ADD menu1, "O&ptions/&Syntaxe/&FBPano ", "F2", FL_MENU_RADIO, syntaxe_fbpano MENU_ITEM_ADD menu1, "O&ptions/&Paramètres ", "Ctrl+P", , choix_parametres
fontsize = 16
COLOR_FL editor1, BKG_COLOR FONT_TEXT editor1, font, fontsize COLOR_TEXT_FL editor1, FONT_COLOR COLOR_CURSOR_FL editor1, FONT_COLOR COLOR_NUMLINES_FL editor1, LNUM_COLOR EDITOR_NUMLINES editor1, LNUM_WIDTH, font, fontsize
EDITOR_SET_BUFFER editor1, buffer1
SET_RESIZABLE fmMain
START fmMain
' ---------------------------------------------------------------------- ' Sous-programmes utilitaires ' ----------------------------------------------------------------------
FUNCTION trouve% (s$, p%, msg%) ' Recherche la chaine s à partir de la position du curseur ' La position de la chaine trouvee est retournee dans p ' msg = TRUE pour afficher le message d'erreur
p = EDITOR_GET_INSERT_POS(editor1) IF BUFFER_SEARCH_FORWARD(buffer1, p, s, p) = 0 THEN IF msg THEN MESSAGE "Chaîne """ + s + """ non trouvée !" trouve = FALSE ELSE trouve = TRUE END_IF END_FUNCTION
SUB update_editor (p%, s1$, s2$, rpl%) ' Met a jour l'editeur apres recherche ou remplacement ' p = position de la chaine recherchee ' s1 = chaine recherchee ' s2 = chaine de remplacement ' rpl = indique si remplacement
DIM p1%
p1 = p + LEN(s1) BUFFER_SELECT buffer1, p, p1
IF rpl THEN BUFFER_REMOVE_SELECT buffer1 BUFFER_INSERT buffer1, p, s2 p1 = p + LEN(s2) BUFFER_SELECT buffer1, p, p1 p = p1 END_IF
EDITOR_SET_INSERT_POS editor1, p1 EDITOR_SHOW_INSERT_POS editor1 END_SUB
' ---------------------------------------------------------------------- ' Sous-programmes associes aux evenements ' ----------------------------------------------------------------------
SUB nouveau TEXT buffer1, "" CAPTION fmMain, "Editeur" END_SUB
SUB ouvrir DIM fname$ fname = FILE_NAME("Ouvrir", "Fichier texte (*.txt)", CURDIR, 0) IF fname = "" OR FILE_EXISTS(fname) = 0 THEN EXIT_SUB BUFFER_FILE_LOAD buffer1, fname CAPTION fmMain, fname END_SUB
SUB enregistrer DIM fname$ fname = FILE_NAME("Enregistrer", "Fichier texte (*.txt)", CURDIR, 0) IF fname = "" THEN EXIT_SUB BUFFER_FILE_SAVE buffer1, fname END_SUB
SUB quitter HIDE fmMain END_SUB
SUB couper EDITOR_CUT editor1 END_SUB
SUB copier EDITOR_COPY editor1 END_SUB
SUB coller EDITOR_PASTE editor1 END_SUB
SUB rechercher DIM p% search = MESSAGE_INPUT("Rechercher", "Rechercher", search) IF search <> "" THEN IF trouve(search, p, TRUE) THEN update_editor p, search, "", FALSE END_IF END_SUB
SUB rechercher_suivant DIM p% IF search = "" THEN search = message_input("Rechercher", "Rechercher", search) END_IF IF search <> "" THEN IF trouve(search, p, TRUE) THEN update_editor p, search, "", FALSE END_IF END_SUB
SUB remplacer SHOW fmReplace END_SUB
SUB remplacer_suivant DIM p% find = GET_TEXT(edFind) IF find = "" THEN EXIT_SUB rep = GET_TEXT(edReplace) IF trouve(find, p, TRUE) THEN update_editor p, find, rep, TRUE END_SUB
SUB remplacer_tout DIM p%, found%, n% find = GET_TEXT(edFind) IF find = "" THEN EXIT_SUB rep = GET_TEXT(edReplace) found = trouve(find, p, TRUE) IF NOT found THEN EXIT_SUB WHILE found n = n + 1 update_editor p, find, rep, TRUE found = trouve(find, p, FALSE) END_WHILE MESSAGE "Chaîne """ & find & """ remplacée " & n & " fois." END_SUB
SUB annuler_remplacer HIDE fmReplace END_SUB
SUB executer
END_SUB
SUB syntaxe_panoramic PRINT "syntaxe_panoramic" END_SUB
SUB syntaxe_fbpano PRINT "syntaxe_fbpano" END_SUB
SUB wrap DIM n% IF CHECKED(btWrap)=1 THEN n = 1 ELSE n = 0 EDITOR_WRAP editor1, n END_SUB
SUB affichage_numlines DIM n% fontsize = GET_POSITION(tbSize) IF CHECKED(btLine)=1 THEN n = LNUM_WIDTH ELSE n = 0 FONT_TEXT editor1, font, fontsize EDITOR_NUMLINES editor1, n, font, fontsize REDRAW END_SUB
SUB choix_parametres SHOW fmParametres END_SUB
SUB changer_taille_police fontsize = GET_POSITION(tbSize) FONT_TEXT editor1, font, fontsize EDITOR_NUMLINES editor1, n, font, fontsize REDRAW END_SUB
SUB changer_police DIM f$ f = LIST_ITEM_READ(lsPolice, LIST_ITEM_INDEX(lsPolice)) f = MID(f, INSTR(f, ".") + 1) font = NUM_FONT(f) FONT_TEXT editor1, font, fontsize EDITOR_NUMLINES editor1, LNUM_WIDTH, font, fontsize REDRAW END_SUB
SUB cacher_parametres HIDE fmParametres END_SUB
| |
| | | Contenu sponsorisé
| Sujet: Re: Un éditeur MultiPlatforme Panoramic, FBpano, etc... | |
| |
| | | | Un éditeur MultiPlatforme Panoramic, FBpano, etc... | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |