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 |
|
|
| IDE Panoramic écrit en Panoramic | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: IDE Panoramic écrit en Panoramic Dim 16 Mai 2010 - 17:52 | |
| Je suis en train de réaliser un IDE entièrement en Panoramic. Pour le moment, il ne fait encore rien d'utile - j' commence à créer l'interface utilisateur. J'aimerais bien avoir vos opinions quant à la présentation. Voici le source en état actuel: - Code:
-
label click_2100, click_2002, click_2003, click_2004, click_2203 label click_2255, click_2256
dim global_width% dim s$, ind%
' initialisations générales hide 0 global_width% = 1000
' fenêtre de conception de la form form 2000 top 2000,65 left 2000,250 width 2000,600 height 2000,400 caption 2000,"Terrain de jeu" command_target_is 2000
' fenêtre de conception - surface de cliquage picture 2100 top 2100,45 width 2100,588 height 2100,320 on_click 2100,click_2100 ' fenêtre de conception - toolbar picture 2101 width 2101,588 height 2101,45 color 2101,255,255,0
' toolbar générale form 2001 height 2001,65 width 2001,global_width% border_small 2001 caption 2001,"Barre de commandes" command_target_is 2001 color 2001,255,255,0 ' toolbar générale - bouton de sortie button 2002 top 2002,2 left 2002,global_width%-50 height 2002,35 width 2002,35 caption 2002,"X" hint 2002,"Sortie" on_click 2002,click_2002 ' toolbar générale - bouton "montrer fenêtre" button 2003 top 2003,2 left 2003,global_width%-130 height 2003,35 width 2003,35 caption 2003,"+" hint 2003,"Montrer fenêtre" on_click 2003,click_2003 ' toolbar générale - bouton "cacher fenêtre" button 2004 top 2004,2 left 2004,global_width%-95 height 2004,35 width 2004,35 caption 2004,"-" hint 2004,"Cacher fenêtre" on_click 2004,click_2004 ' toolbar générale - choix de fenêtre" combo 2005 top 2005,2 left 2005,global_width%-230 height 2005,35 width 2005,100 item_add 2005,"Terrain de jeu" item_add 2005,"Propriétés" item_add 2005,"Projet" hint 2005,"Choix de fenêtre fenêtre"
' fenêtre de propriétés form 2200 width 2200,250 height 2200,400 top 2200,65 caption 2200,"Propriétés" command_target_is 2200 ' fenêtre de propriétés - liste des libellés des propriétés list 2202 width 2202,120 inactive 2202 item_add 2202,"Form" item_add 2202,"id" item_add 2202,"Propriétés" item_add 2202,"Evènements" ' fenêtre de propriétés - liste des valeurs de propriétés list 2203 left 2203,120 width 2203,120 on_click 2203,click_2203 item_add 2203,"..." item_add 2203,"0" item_add 2203,"..." item_add 2203,"..."
' fenêtre de modification des propriétés form 2250 hide 2250 command_target_is 2250 border_hide 2250 color 2250,255,0,0 top 2250,300 left 2250,300 alpha 2251 top 2251,10 left 2251,10 edit 2252 top 2252,10 left 2252,130 button 2255 top 2255,50 left 2255,10 caption 2255,"Abandon" on_click 2255,click_2255 button 2256 top 2256,50 left 2256,100 caption 2256,"Valider" on_click 2256,click_2256
' fenêtre de projet form 2300 command_target_is 2300 top 2300,65 left 2300,850 width 2300,150 height 2300,400 caption 2300,"Projet" list 2302 item_add 2302,"Form 0"
command_target_is 2000 end
click_2002: terminate return click_2100: message "("+str$(mouse_x_position(2100))+","+str$(mouse_y_position(2100))+")" return ' montrer fenêtre click_2003: if item_index(2005)=1 then show 2100 if item_index(2005)=2 then show 2000 if item_index(2005)=3 then show 2300 return ' cacher fenêtre click_2004: if item_index(2005)=1 then hide 2100 if item_index(2005)=2 then hide 2000 if item_index(2005)=3 then hide 2300 return
'sélectionner et modifier une propriété click_2203: s$ = item_read$(2203,item_index(2203)) if s$<>"..." show 2250 caption 2251,item_read$(2202,item_index(2203)) text 2252,item_read$(2203,item_index(2203)) end_if return
' abandon de modif d'une propriété click_2255: command_target_is 2000 hide 2250 return ' valider une modif de propriétés click_2256: ind% = item_index(2203) item_delete 2203,ind% item_insert 2203,ind%,text$(2252) command_target_is 2000 hide 2250 return | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 16 Mai 2010 - 18:02 | |
| Pas mal, le format de l'ensemble correspond bien aux petits écrans (1024 x environ 555 en conservant la barre des tâches) Songer aux possibilités d'agrandir pour les écrans plus grands. Mais la barre de commande est moins jolie que les autres. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: IDE Panoramic écrit en Panoramic Dim 16 Mai 2010 - 18:06 | |
| Pour le moment, la variable global_width% permet de définir l largeur réelle de l'écran. J'ai mis 1000 pixels, mais on peut modifier. Les différentes fenêtres seront conditionnées par cette variable qui à terme sera chargée par la largeur physique de l'écran. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: IDE Panoramic écrit en Panoramic Dim 16 Mai 2010 - 21:25 | |
| C'est prometteur... wait and see. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: IDE Panoramic écrit en Panoramic Lun 17 Mai 2010 - 14:00 | |
| la suite ! la suite ..... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: IDE Panoramic écrit en Panoramic Lun 17 Mai 2010 - 23:15 | |
| Je suis en train de finir la "gestion de projet", et je remettrai le progrfamme en ligne, pour donner un aperçu de ce que je souhaite faire... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: IDE Panoramic écrit en Panoramic Mar 18 Mai 2010 - 13:31 | |
| très intéressant, je suis en phase avec JJN4 pour la barre de commande.
Cela me confirme que l'ons ne jouent pas tous dans la même coure. Et c'est bien ainsi.
Maintenant je fait le rapprochement avec le bug sur Delete...
Impatient de voir la suite.... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: IDE Panoramic écrit en Panoramic Mar 18 Mai 2010 - 17:48 | |
| Eh bien, voici la suite. J'ai fait une première version de la gestion de projets. Voici comment cela marche: Chaque "projet" est identifié par un nom et un chemin d'accès. Le projet est mémorisé dans un fichier chemin\nom.ppe (ppe signifie Projet Panoramic Edi). Ce fichier contient en format texte la définition complète du programme, avec les forms, les objets, les morceaux de code etc. Pour le moment, on peut paramétrer le projet et des attibuts de la form 0. Plus tard, il y aura d'autres attributs de la form 0, d'autres forms et d'autres objets, mais cela permet déjà de voir le principe de fonctionnement. On peut "sauver" le projet, recharger un projet mémorisé, et générer le code Panoramic dans un fichier bas. Je rajouterai la possibilité d'insérer les dim et des sous-programmes indépendants; dès lors, on peut saisir le code des sous-programmes évènements (on_click, ...). Pour le moment, ce code est limité à une seule ligne (pouvant contenir des ":" pour faire plusieurs instructions), mais cela changera bientôt: je passerai à un mémo pour saisir le code. Il n'est pas nécessaire d'ajouter "return" à la fin de la routine d'évènement: le générateur le fait automatiquement. Il génère aussi les instructions "label" nécessaires, tout cela pour les routines évènements dont le code a une longueur différent de zéro et est différent de "<Rien>" ce qui est le contenu par défaut, tout comme le nom par défaut du projet et de l'auteur est "<sansnom>" L'EDI affiche plusieurs fenêtres. La première est la barre d'outils. D'accord, elle n'est pas belle. Je n'ai pas encore trouvé de belles icônes gratuites pour symboliser ces fonctions. Si quelqu'un en a, je suis preneur... Puis, il y a le "terrain de jeu". Il affiche la form sur laquelle un travaille à un instant donné, donc, pour le moment, la form 0. Il y a aussi l'explorateur de projet, sur la droite. Il contient une ligne pour le projet et une ligne par form. En cliquant sur ces lignes, les propriétés concernées sont affichées dans la fenêtre des propriétés, sur la gauche. En cliquant sur une des valeurs, une fenêtre de saisie s'ouvre pour modifier la valeur, et le bouton "valider" la met en place. Bien sûr, en cliquant sur une form dans l'explorateur de projet à droite, la form s'affiche aussi dans le terrain de jeu, mais cela n'apparaît pas pour le moment, vue qu'il n'y a que la form 0... Toutes les fenêtres sont modifiables en taille et position selon les besoins, et le bouton "Dock" restaure leurs positions et dimensions initiales. Toutes ces fenêtres (sauf la barre d'outils) peuvent être cachées ou réaffichées à volonté. Je suis curieux d'avoir vos remarques en retour ! Assez de baratin, voici un exemple d'un fichier projet, dont le code généré peut réellement être exécuté dans l'éditeur Panoramic: - Code:
-
.Projet Nom Auteur Chemin Créé le Modifié le Version ...fin... ... essai 6 Klaus C:\Panedi\ 17/05/2010 17/05/2010 V1.0 ...fin... .Form id .Propriétés Top Left Width Height .Evènements On_click On_key_up On_key_down ...fin... ... 0 ... 0 0 320 240 ... message "click" <Rien> message "key down" ...fin...
et voici la version actuelle de l'éditeur: - Code:
-
label click_2100, click_2002, click_2003, click_2004, click_2006, click_2007 label click_2008, click_2009, click_2010 label click_2203 label click_2255, click_2256, click_2302 label prop_proj_reset, prop_form_reset, lp_inex, bad_dir, cherche_section label dock_tool, dock_prop, dock_play, dock_proj label load_prop, load_prop_proj, load_prop_form, projet_vide, prop_save
dim global_width% dim tool_top%, tool_left%, tool_width%, tool_height% dim prop_top%, prop_left%, prop_width%, prop_height% dim proj_top%, proj_left%, proj_width%, proj_height% dim play_top%, play_left%, play_width%, play_height% dim chemin_projet$, panedi_projet$ dim n_objets% dim liste_objets%(5000,6) : ' ,0=type ,1=id ,2=top ,3=left ,4=height ,5=width ,6=id form owner ' type: 0=project 1=form 2=alpha 3=edit 4=button dim flag_modif_prop%, id_objet% dim id_play_form% : ' id de la form dans playground dim id_prop_form% : ' id de l'objet dans les propriétés dim s$, rec$, ind%, temp%, i%
' initialisations générales hide 0 global_width% = 1000 gosub projet_vide
tool_top% = 0 tool_left% = 0 tool_width% = global_width% tool_height% = 65 prop_top% = 65 prop_left% = 0 prop_width% = 250 prop_height% = 400 proj_top% = 65 proj_left%= 850 proj_width% = 150 proj_height% = 400 play_top% = 65 play_left% = 250 play_width% = 600 play_height% = 400
' fenêtre de conception de la form form 2000 gosub dock_play caption 2000,"Form 0" command_target_is 2000
' fenêtre de conception - surface de cliquage picture 2100 top 2100,45 width 2100,play_width%-2 height 2100,play_height% - 80 on_click 2100,click_2100 ' fenêtre de conception - toolbar picture 2101 width 2101,play_width%-2 height 2101,45 color 2101,255,255,0
' toolbar générale form 2001 gosub dock_tool border_small 2001 caption 2001,"<sansnom> par <sansnom>" command_target_is 2001 color 2001,255,255,0 ' toolbar générale - bouton de sortie button 2002 top 2002,2 left 2002,tool_width%-50 height 2002,35 width 2002,35 caption 2002,"X" hint 2002,"Sortie" on_click 2002,click_2002 ' toolbar générale - bouton "montrer fenêtre" button 2003 top 2003,2 left 2003,tool_width%-130 height 2003,35 width 2003,35 caption 2003,"+" hint 2003,"Montrer fenêtre" on_click 2003,click_2003 ' toolbar générale - bouton "cacher fenêtre" button 2004 top 2004,2 left 2004,tool_width%-95 height 2004,35 width 2004,35 caption 2004,"-" hint 2004,"Cacher fenêtre" on_click 2004,click_2004 ' toolbar générale - choix de fenêtre" combo 2005 top 2005,2 left 2005,tool_width%-230 height 2005,35 width 2005,100 item_add 2005,"Terrain de jeu" item_add 2005,"Propriétés" item_add 2005,"Projet" hint 2005,"Choix de fenêtre fenêtre" ' toolbar générale - dock button 2006 top 2006,2 left 2006,tool_width%-230-60 width 2006,50 height 2006,35 caption 2006,"Dock" hint 2006,"Replacer les fenêtres correctement" on_click 2006,click_2006 ' toolbar générale - Générer button 2007 top 2007,2 left 2007,190 width 2007,50 height 2007,35 caption 2007,"Générer" hint 2007,"Générer le code source du projet" on_click 2007,click_2007 ' toolbar générale - Sauvegarder button 2008 top 2008,2 left 2008,130 width 2008,50 height 2008,35 caption 2008,"Sauver" hint 2008,"Sauver le projet" on_click 2008,click_2008 ' toolbar générale - charger button 2009 top 2009,2 left 2009,70 width 2009,50 height 2009,35 caption 2009,"Ouvrir" hint 2009,"Ouvrir un projet existant" on_click 2009,click_2009 ' toolbar générale - nouveau projet button 2010 top 2010,2 left 2010,10 width 2010,50 height 2010,35 caption 2010,"Créer" hint 2010,"Créer un nouveau projet" on_click 2010,click_2010
' fenêtre de propriétés form 2200 gosub dock_prop caption 2200,"Propriétés" command_target_is 2200 ' fenêtre de propriétés - liste des libellés des propriétés list 2202 width 2202,prop_width%/2 height 2202,prop_height% - 35 inactive 2202 ' fenêtre de propriétés - liste des valeurs de propriétés list 2203 left 2203,prop_width%/2 width 2203,prop_width%/2 - 10 height 2203,prop_height% - 35 on_click 2203,click_2203 gosub prop_proj_reset
' fenêtre de modification des propriétés form 2250 hide 2250 command_target_is 2250 border_hide 2250 color 2250,255,0,0 top 2250,300 left 2250,300 alpha 2251 top 2251,10 left 2251,10 edit 2252 top 2252,10 left 2252,130 button 2255 top 2255,50 left 2255,10 caption 2255,"Abandon" on_click 2255,click_2255 button 2256 top 2256,50 left 2256,100 caption 2256,"Valider" on_click 2256,click_2256
' fenêtre de projet form 2300 command_target_is 2300 gosub dock_proj caption 2300,"Projet" list 2302 width 2302,proj_width%/2 on_click 2302,click_2302 list 2303 left 2303,proj_width%/2 width 2303,proj_width%/2 inactive 2303
gosub lp_inex
command_target_is 2000 end
click_2002: terminate return click_2100: message "("+str$(mouse_x_position(2100))+","+str$(mouse_y_position(2100))+")" return ' montrer fenêtre click_2003: if item_index(2005)=1 then show 2100 if item_index(2005)=2 then show 2000 if item_index(2005)=3 then show 2300 return ' cacher fenêtre click_2004: if item_index(2005)=1 then hide 2100 if item_index(2005)=2 then hide 2000 if item_index(2005)=3 then hide 2300 return
'sélectionner et modifier une propriété click_2203: s$ = item_read$(2203,item_index(2203)) if s$<>"..." show 2250 caption 2251,item_read$(2202,item_index(2203)) text 2252,item_read$(2203,item_index(2203)) end_if return
' abandon de modif d'une propriété click_2255: command_target_is 2000 hide 2250 return ' valider une modif de propriétés click_2256: i% = item_index(2203) item_delete 2203,i% item_insert 2203,i%,text$(2252) if item_read$(2202,1)=".Projet" if (i%=2) or (i%=3) caption 2001,item_read$(2203,2) + " par " + item_read$(2203,3) end_if end_if if item_read$(2202,1)=".Form" caption 2000,"Form " + item_read$(2203,2) end_if command_target_is 2000 hide 2250 return ' dock de toutes les fenêtree click_2006: gosub dock_tool gosub dock_prop gosub dock_play gosub dock_proj return
' dock le playground dock_play: top 2000,play_top% left 2000,play_left% width 2000,play_width% height 2000,play_height% return ' dock les propriétés dock_prop: width 2200,prop_width% height 2200,prop_height% top 2200,prop_top% left 2200,prop_left% return ' dock le projet dock_proj: top 2300,proj_top% left 2300,proj_left% width 2300,proj_width% height 2300,proj_height% return ' dock la tool bar dock_tool: top 2001,tool_top% left 2001,tool_left% height 2001,tool_height% width 2001,tool_width% return
' sélection élément de projet click_2302: ind% = item_index(2302) if item_read$(2302,ind%)="projet" gosub load_prop_proj return end_if if item_read$(2302,ind%)="form" gosub load_prop_form return end_if return load_prop_proj: ind% = 0 : ' le projet a TOIUJOURS l'indice 0 ! gosub load_prop : ' charger les propriétés du projet return
load_prop_form: temp% = val(item_read$(2303,ind%)) for ind%=0 to n_objets%-1 if liste_objets%(ind%,0)=1 : ' est-ce que c'est une form ? if liste_objets%(ind%,1)=temp% : ' est-ce que c'est le bon numéro ? gosub load_prop : ' alors charger les propriétes de la form return : ' et terminer end_if end_if next ind% message "OUPS ! Je ne trouve pas..." return ' charger les propriétés load_prop: if ind%<>id_prop_form% temp% = ind% ind% = id_prop_form% gosub prop_save ind% = temp% clear 2202 clear 2203 file_load 2202,"Panedi_temp_prop_l_"+str$(ind%)+".pei" file_load 2203,"Panedi_temp_prop_p_"+str$(ind%)+".pei" id_prop_form% = ind% end_if return ' initialiser les propriétés pour un projet vide prop_proj_reset: clear 2202 clear 2203 item_add 2202,".Projet" item_add 2202,"Nom" item_add 2202,"Auteur" item_add 2202,"Chemin" item_add 2202,"Créé le" item_add 2202,"Modifié le" item_add 2202,"Version" item_add 2202,"...fin..." item_add 2203,"..." item_add 2203,"<sansnom>" item_add 2203,"<sansnom>" item_add 2203,"C:\Panedi\" item_add 2203,"17/05/2010" item_add 2203,"17/05/2010" item_add 2203,"V1.0" item_add 2203,"...fin..." return ' initialiser les propriétés pour une form vide prop_form_reset: clear 2202 clear 2203 item_add 2202,".Form" item_add 2202,"id" item_add 2202,".Propriétés" item_add 2202,"Top" item_add 2202,"Left" item_add 2202,"Width" item_add 2202,"Height" item_add 2202,".Evènements" item_add 2202,"On_click" item_add 2202,"On_key_up" item_add 2202,"On_key_down" item_add 2202,"...fin..." item_add 2203,"..." item_add 2203,"0" item_add 2203,"..." item_add 2203,"0" item_add 2203,"0" item_add 2203,"320" item_add 2203,"240" item_add 2203,"..." item_add 2203,"<Rien>" item_add 2203,"<Rien>" item_add 2203,"<Rien>" item_add 2203,"...fin..." return
' chargement d'un projet - le nom du fichier projet est dans chemin_projet$ ' les paramètres de chaque objet sont sauvegardés dans ' "Panedi_temp_prop_l_nnnn.pei" pour les libellés et ' "Panedi_temp_prop_p_nnnn.pei" pour les paramètres ' avec nnnn = indice dans liste_objets%(nnnn,x) click_2009: open_dialog 2020 filter 2020,"*.ppe" s$ = file_name$(2020) if s$="_" then return ' ici, charger le projet on_error_goto lp_inex file_open_read 2,s$ off_error_goto clear 2302 clear 2303 ind% = 0 while file_eof(2)=0 clear 2202 clear 2203 repeat file_readln 2,s$ item_add 2202,s$ until s$="...fin..." repeat file_readln 2,s$ item_add 2203,s$ until s$="...fin..." gosub prop_save ' ,0=type ,1=id ,2=top ,3=left ,4=height ,5=width ,6=id form owner ' type: 0=project 1=form 2=alpha 3=edit 4=button liste_objets%(ind%,0) = s$ = item_read$(2202,1) if s$=".Projet" liste_objets%(ind%,0) = 0 liste_objets%(ind%,1) = 0 liste_objets%(ind%,2) = 0 liste_objets%(ind%,3) = 0 liste_objets%(ind%,4) = 0 liste_objets%(ind%,5) = 0 liste_objets%(ind%,6) = 0 item_add 2302,"projet" item_add 2302,".forms" item_add 2303,item_read$(2203,2) item_add 2303,"..." end_if if s$=".Form" liste_objets%(ind%,0) = 1 liste_objets%(ind%,1) = item_read$(2203,2) liste_objets%(ind%,2) = item_read$(2203,4) liste_objets%(ind%,3) = item_read$(2203,5) liste_objets%(ind%,4) = item_read$(2203,7) liste_objets%(ind%,5) = item_read$(2203,6) liste_objets%(ind%,6) = 0 item_add 2302,"form" item_add 2303,item_read$(2203,2) end_if ind% = ind% + 1 end_while n_objets% = ind% file_close 2 return ' en cas de fichier projet inexistant, on crée un projet lp_inex: off_error_goto clear 2302 clear 2303 gosub projet_vide item_add 2302,"projet" item_add 2302,".forms" item_add 2302,"form" item_add 2303,"sansnom" item_add 2303,"..." item_add 2303,"0" gosub prop_proj_reset ind% = 0 gosub prop_save gosub prop_form_reset ind% = 1 gosub prop_save n_objets% = 2 return ' memoriser le contenu de la form propriétés - ind% contient l'indice dans liste_objets% prop_save: file_save 2202,"Panedi_temp_prop_l_"+str$(ind%)+".pei" file_save 2203,"Panedi_temp_prop_p_"+str$(ind%)+".pei" return ' créer un projet vide projet_vide: id_play_form% = 1 : ' la form 0 est dans le playground par défaut id_prop_form% = 1 : ' les propriétés de la form 0 sont affichées n_objets% = 2 ' premier objet: toujours le projet en cours liste_objets%(0,0) = 0 : ' type: projet liste_objets%(0,1) = 0 : ' id du projet (toujours 0) liste_objets%(0,2) = 0 : ' top: N/A liste_objets%(0,3) = 0 : ' left: N/A liste_objets%(0,4) = 0 : ' height: N/A liste_objets%(0,5) = 0 : ' width: N/A liste_objets%(0,6) = 0 : ' owner: N/A ' 2ème objet: toujours une form, en général form 0 liste_objets%(1,0) = 1 : ' type: form liste_objets%(1,1) = 0 : ' numéro de la form liste_objets%(1,2) = 0 : ' défaut: top 0 liste_objets%(1,3) = 0 : ' défaut: left 0 liste_objets%(1,4) = 240 : ' défaut: height 240 liste_objets%(1,5) = 320 : ' défaut: width 320 liste_objets%(1,6) = 0 : ' owner: le projet - objet 0 return ' générer le source du projet click_2007: gosub load_prop_proj : ' charger les propriétés du projat s$ = item_read$(2203,4) if len(s$)=0 i% = message_error_ok("OUPS ! Le chemin d'accès n'est pas renseigné !") return end_if if len(item_read$(2203,2))=0 i% = message_error_ok("OUPS ! L'application n'a pas de nom !") return end_if if dir_exists(s$) = 0 on_error_goto bad_dir dir_make s$ off_error_goto end_if if right$(s$,1)<>"\" then s$ = s$ + "\" s$ = s$ + item_read$(2203,2) + ".bas" if file_exists(s$)=1 if message_confirmation_yes_no("Remplacer le fichier existant " + s$)<>1 then return end_if file_open_write 2,s$ ' générer les options du projet en commentaire file_writeln 2,"' " + item_read$(2202,1) : ' mot-clé projet i% = 1 repeat i% = i% + 1 file_writeln 2,"' " + item_read$(2202,i%) + " = " + item_read$(2203,i%) until item_read$(2202,i%+1)="...fin..." file_writeln 2,"" ' générer les instructions "label" for ind%=1 to n_objets%-1 gosub load_prop : ' charger les propriétés s$ = ".Evènements" gosub cherche_section i% = i% + 1 repeat s$ = item_read$(2203,i%) : ' charger le code de l'évènement if (len(s$)>0) and (s$<>"<Rien>") file_writeln 2,"label " + item_read$(2202,i%)+"_"+item_read$(2203,2) end_if i% = i% + 1 until left$(item_read$(2202,i%),1)="." next ind% ' générer les objets for ind%=1 to n_objets%-1 gosub load_prop select liste_objets%(ind%,0) case 1 file_writeln 2,"" i% = liste_objets%(ind%,1) file_writeln 2,"' form " + str$(i%) if i%>0 then file_writeln 2,"form " + str$(i%) s$ = ".Propriétés" gosub cherche_section i% = i% + 1 repeat file_writeln 2,item_read$(2202,i%) + " " + str$(liste_objets%(ind%,1)) + "," + item_read$(2203,i%) i% = i% + 1 until left$(item_read$(2202,i%),1)="." s$ = ".Evènements" gosub cherche_section i% = i% + 1 repeat s$ = item_read$(2203,i%) : ' charger le code de l'évènement if (len(s$)>0) and (s$<>"<Rien>") s$ = item_read$(2203,2) file_writeln 2,item_read$(2202,i%) + " " + s$ + "," + item_read$(2202,i%) + "_" + s$ end_if i% = i% + 1 until left$(item_read$(2202,i%),1)="." end_select next ind% ' générer la fin de la partie "début" file_writeln 2,"" file_writeln 2,"end" file_writeln 2,"" ' générer les routines d'évènements for ind%=1 to n_objets%-1 gosub load_prop : ' charger les propriétés s$ = ".Evènements" gosub cherche_section i% = i% + 1 repeat s$ = item_read$(2203,i%) : ' charger le code de l'évènement if (len(s$)>0) and (s$<>"<Rien>") file_writeln 2,item_read$(2202,i%)+"_"+item_read$(2203,2)+":" file_writeln 2,s$ file_writeln 2,"Return" end_if i% = i% + 1 until left$(item_read$(2202,i%),1)="." next ind% file_writeln 2,"" ' fin de la génération file_close 2 return bad_dir: off_error_goto i% = message_error_ok("OUPS ! Le répertoire est impossible à créer !") return ' chercher la section dans les propriétés dont le nom estdans s$ cherche_section: i% = 0 repeat i% = i% + 1 until item_read$(2202,i%)=s$ return ' sauver le projet click_2008: gosub load_prop_proj : ' charger les propriétés du projat s$ = item_read$(2203,4) if len(s$)=0 i% = message_error_ok("OUPS ! Le chemin d'accès n'est pas renseigné !") return end_if if len(item_read$(2203,2))=0 i% = message_error_ok("OUPS ! L'application n'a pas de nom !") return end_if if dir_exists(s$) = 0 on_error_goto bad_dir dir_make s$ off_error_goto end_if if right$(s$,1)<>"\" then s$ = s$ + "\" s$ = s$ + item_read$(2203,2) + ".ppe" if file_exists(s$)=1 if message_confirmation_yes_no("Remplacer le fichier existant " + s$)<>1 then return end_if file_open_write 2,s$ for ind%=0 to n_objets%-1 gosub load_prop : ' charger les propriétés d'un objet i% = 1 repeat s$ = item_read$(2202,i%) file_writeln 2,s$ i% = i% + 1 until s$="...fin..." i% = 1 repeat s$ = item_read$(2203,i%) file_writeln 2,s$ i% = i% + 1 until s$="...fin..." next ind% file_close 2 return ' créer un nouveau projet click_2010: gosub lp_inex return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: IDE Panoramic écrit en Panoramic Mar 18 Mai 2010 - 18:54 | |
| ca y est Klaus est lancé.... On ne l'arrête plus... Ouahou autant de code en si peu de temps j'en suis baba | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: IDE Panoramic écrit en Panoramic Mer 19 Mai 2010 - 10:48 | |
| J'ai fait un pas de plus: tous les objets sont définis par des fichiers modèle (template) en format texte; pour le moment, cela concerne le projet et les forms. Tous les objets sont définis par des fichiers modèle (template) en format texte; pour le moment, cela concerne le projet et les forms. Comme le programme grandit, il était plus simple de le mettre à disposition sur mon site, dans la rubrique des programmes Panoramic. Voici le lien, pour ceux qui ne le connaissent pas encore: http://membres.multimania.fr/klaus/Bienvenue.1.htmlLe code peut être généré et est exécutable, le projet peut être sauvegardé et repris ultérieurement. | |
| | | musicgames
Nombre de messages : 55 Date d'inscription : 21/01/2008
| Sujet: Re: IDE Panoramic écrit en Panoramic Jeu 20 Mai 2010 - 6:31 | |
| - Citation :
- Klaus a écrit : L'EDI affiche plusieurs fenêtres. La première est la barre d'outils. D'accord, elle n'est pas belle. Je n'ai pas encore trouvé de belles icônes gratuites pour symboliser ces fonctions. Si quelqu'un en a, je suis preneur...
Voici un très bon (à mon avis) set d'icônes, téléchargeable sur cette adresse : http://www.iconarchive.com/category/system/must-have-icons-by-visualpharm.htmlIl est gratuit, mais c'est un linkware (les auteurs demandent un lien vers leur site). Bonne journée ! | |
| | | Invité Invité
| Sujet: Re: IDE Panoramic écrit en Panoramic Jeu 20 Mai 2010 - 7:53 | |
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: IDE Panoramic écrit en Panoramic Jeu 20 Mai 2010 - 13:02 | |
| Merci pour vos suggestions, je suivrai ces pistes.
J'ai mis une nouvelle version de mon EDI en ligne sur mon site. Il y a la gestion complète de projet, la génération de code remaniée, et l'apparition de nouveaux pseudo-objets: code1 permet de saisir du code qui sera placé en début de programme (les DIM, ...) code2 permet de saisir du code qui sera placé juste avant l'instruction END (des initialisations générales) sub permet de placer ses propres sous-programmes, avec génération automatique de l'instruction label, du label proprement-dit et du return.
A partir de maintenant, tous les objets seront configurés par des fichiers modèle (template) fournis dans la distribution. Il est conseillé de les copier dans un répertoire créé à cet effet, ou le répertoire où se trouve l'EDI.
Il y a aussi l'apparition d'un menu doublant les fonctions de la barre d'outils, avec une nouvelle fonction "Options". Cette fonction permet pour le moment de choisir le répertoire où se trouvent les modèles. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: IDE Panoramic écrit en Panoramic Jeu 20 Mai 2010 - 13:36 | |
| Une petite remarque A l'ouverture les form sont " écrasés" (bordures angulaires au lieu des belles bordures arrondies et des scroll bar ). Est ce du fait que je sois sur un 15" ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: IDE Panoramic écrit en Panoramic Jeu 20 Mai 2010 - 14:13 | |
| Tiens, c'est vrai - sauf pour la petite fenêtre en bas à droite qui donne la position du click de la souris dans le terrain de jeu. Pour le moment, je n'ai pas d'explication - j'ai déclaré toutes les fenêtres de la même manière, sauf la barre d'outils qui est sans bordure.
Cela ne m'avait pas frappé plus que ça, et au contraire, cela m'arrange pour la juxtaposition des fenêtres qui s'en trouve facilitée. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: IDE Panoramic écrit en Panoramic Jeu 20 Mai 2010 - 14:26 | |
| celà me le fais parfois quand la marge entre l'objet et le form est trop petite. quand on déclare un objet , il y a la partie de l'on voit mais tout autour on dirait qu' il y a une sorte de marge surtout pour les pictures et les list .peut être devrais tu agrandir un peu tes forms ...
à voir... et à suivre
peut être que Jack peut nous éclairer de ses lumière sur cet bizarrerie | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: IDE Panoramic écrit en Panoramic Ven 21 Mai 2010 - 0:07 | |
| | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: IDE Panoramic écrit en Panoramic Ven 21 Mai 2010 - 7:28 | |
| - Citation :
- il ne me semble pas logique de mener deux fils de discussions en parallèle sur le même sujet
Tout à fait. Le sujet est verouillé. | |
| | | Contenu sponsorisé
| Sujet: Re: IDE Panoramic écrit en Panoramic | |
| |
| | | | IDE Panoramic écrit en Panoramic | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |