FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» trop de fichiers en cours
IDE Panoramic écrit en Panoramic Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
IDE Panoramic écrit en Panoramic Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
IDE Panoramic écrit en Panoramic Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
IDE Panoramic écrit en Panoramic Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
IDE Panoramic écrit en Panoramic Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
IDE Panoramic écrit en Panoramic Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
IDE Panoramic écrit en Panoramic Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
IDE Panoramic écrit en Panoramic Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
IDE Panoramic écrit en Panoramic Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
IDE Panoramic écrit en Panoramic Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
IDE Panoramic écrit en Panoramic Emptypar leclode Dim 21 Avr 2024 - 18:09

» 2D_fill_color(résolu)
IDE Panoramic écrit en Panoramic Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
IDE Panoramic écrit en Panoramic Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
IDE Panoramic écrit en Panoramic Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
IDE Panoramic écrit en Panoramic Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

 

 IDE Panoramic écrit en Panoramic

Aller en bas 
+3
JL35
jjn4
Klaus
7 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyDim 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jjn4

jjn4


Nombre de messages : 2690
Date d'inscription : 13/09/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: +++   IDE Panoramic écrit en Panoramic EmptyDim 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.
bom
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyDim 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyDim 16 Mai 2010 - 21:25

C'est prometteur... wait and see.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyLun 17 Mai 2010 - 14:00

la suite ! la suite .....
lol!
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyLun 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...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyMar 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....
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyMar 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyMar 18 Mai 2010 - 18:54

ca y est Klaus est lancé....
On ne l'arrête plus...

lol!

Ouahou autant de code en si peu de temps j'en suis baba

cheers
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyMer 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.html

Le code peut être généré et est exécutable, le projet peut être sauvegardé et repris ultérieurement.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
musicgames




Nombre de messages : 55
Date d'inscription : 21/01/2008

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyJeu 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.html

Il est gratuit, mais c'est un linkware (les auteurs demandent un lien vers leur site).

Bonne journée !
Revenir en haut Aller en bas
Invité
Invité




IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyJeu 20 Mai 2010 - 7:53

J'avais fait des icônes en les dessinant. Tu pourrais peut-être faire la même chose. Tu peux aussi récupérer ceux que j'ai fait. Par contre si c'est le cas, il vaudrait mieux mettre chacun dans un fichier bas, et se servir d' #INCLUDE, parce que ton listing ne serait plus très clair.

le lien est:
https://panoramic.1fr1.net/vos-sources-vos-utilitaires-a-partager-f2/icones-a-glissiere-t491.htm?highlight=glissi%e8re

juste pour l'idée
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyJeu 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyJeu 20 Mai 2010 - 13:36

Une petite remarque confused

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" ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyJeu 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyJeu 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
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyVen 21 Mai 2010 - 0:07

Mon logiciel étant maintenant disponible sur mon site, je continue les informations et les discussions à ce sujet à cet endroit, dans la rubrique suivante:
https://panoramic.1fr1.net/le-site-de-klaus-f11/edi-realise-entierement-en-panoramic-t842.htm

Tous ceux qui s'y intéressent sont cordialement invités à participer à cet endroit, car il ne me semble pas logique de mener deux fils de discussions en parallèle sur le même sujet.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jack
Admin
Jack


Nombre de messages : 2381
Date d'inscription : 28/05/2007

IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic EmptyVen 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é.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Contenu sponsorisé





IDE Panoramic écrit en Panoramic Empty
MessageSujet: Re: IDE Panoramic écrit en Panoramic   IDE Panoramic écrit en Panoramic Empty

Revenir en haut Aller en bas
 
IDE Panoramic écrit en Panoramic
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» L'argot VERLAN
» [RESOLU]0927i2 : bug critique de lect./ecrit des variables
» Logithèque : une base de données en Panoramic pour Panoramic
» PANORAMIC V 0.9.6 available / PANORAMIC V 0.9.6 disponible
» Guillot_Le_Berger, une BD en Panoramic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: