FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» 3D_LINE How to ?
par papydall Aujourd'hui à 6:51

» mise a jour calculatrice
par joeeee2017 Hier à 23:00

» supprimé
par joeeee2017 Dim 15 Oct 2017 - 20:02

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» Convertisseur de base 10 de 2 à 36
par gigi75 Sam 14 Oct 2017 - 21:54

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» supprimé
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

» Mise à jour PANOMAND
par jean_debord Mar 26 Sep 2017 - 11:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Un inutilitaire... Qui pourrait bien devenir utile

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
The Gamer

avatar

Nombre de messages : 110
Age : 23
Localisation : Toulouse (31)
Date d'inscription : 11/05/2010

MessageSujet: Un inutilitaire... Qui pourrait bien devenir utile   Sam 22 Aoû 2015 - 0:49

Bonjour a tous,

Voici ce que je suis en train de dévellopper (la 3D explose chez moi ;P)... Un petit outil permettant d'éditer facilement une carte 3D avec enregistrement des attributs des objets dans un fichier excel. A terme, le but est de pouvoir créer facilement tout les objets 3D supporté par PANORAMIC en ayant un aperçu rapide du rendu final. A la fin, un sysème traduira la MAP créée en PANORAMIC directement. Ca permettra de créer de jolies cartes 3D Rapidement.

Voici une ébauche de cet outil qui demande Excel et ne gère pour le moment que les cubes:

Code:
' Merci Silverman pour ton code sur la position de la souris

' ======= Chargement des librairies ============
dll_on "user32"

' ======= On allume Excel des le début =========
 hide 0
 message "Veuillez patienter le temps que Excel s'ouvre"
 excel_start

 ' form 100
 ' border_hide 100
'  top 100, screen_y/2-100
 ' left 100, screen_x/2-200
 ' height 100,200
 ' width 100,400

 ' picture 101
 ' parent 101,100
 ' full_space 101
 ' file_load 101,"Chargement.bmp"
 
 

' ======= Déclaration des label =======
' Positionnnement de la souris
label Scene_3d,Activation_scene3d,Quitter,Creation_cube,Activation_creer_cube,Nouveau_projet,Activation_modifier, Orientation_modification, Modification_cube

' ======= Déclaration des variables  =======

' Activation de la scene_3d
dim scene_active

' Paramètres de l'affichage
dim demi_ecran_x%
dim demi_ecran_y%

' Comportement de la souris
dim souris_mouv_x
dim souris_mouv_y
dim init_pos_souris
dim position_souris

' Repère sphérique et cartésiens pour le pointage caméra
dim sph_point_teta
dim sph_point_phi
dim sph_point_R

dim cart_point_x
dim cart_point_y
dim cart_point_z

' Repère cartesien pour la position de la caméra
dim cam_pos_x
dim cam_pos_y
dim cam_pos_z
dim cam_ampli
dim cam_osci
dim cam_freq

' Position du pointeur 3d (autour duquel la caméra tourne)
dim pos_pointeur_x
dim pos_pointeur_y
dim pos_pointeur_z
dim vit_mouv_camera

' Repère sphérique + variables nécéssaire a la rotation de la caméra pendant le chargement
dim cam_pos_phi

' Sensibilité de la souris
dim sensi

' Paramètre du zoom caméra
dim vitesse_zoom

' Variable de création d'objets
dim num_premier_objet
dim num_dernier_objet
dim num_courant_objet
dim type_courant_objet$

' Variables pour la lecture du fichier de sauvegarde
dim a$
dim fichier_courant_bas$
dim fichier_courant_xls$
dim ligne$



' Compteurs pour boucle utilisés de multiples fois
' Compteur utilisés dans les timers
dim i
dim j
' Compteur hors timer
dim f

' ======= Initialisation des variables  =======

' Activité de la scene_3d
scene_active = 0

' Position/sensibilité du pointeur
sph_point_R = 3
sph_point_teta=0
sph_point_phi=0
sensi=0.5
vit_mouv_camera = 0.1

' Position du pointeur 3d (autour duquel la caméra tourne)
pos_pointeur_x = 0
pos_pointeur_y = 0
pos_pointeur_z = 0

' Position de la caméra
cam_pos_x = 0
cam_pos_y = 0
cam_pos_phi = 0

' Paramètres de la fenetre
demi_ecran_x% = screen_x/2
demi_ecran_y% = screen_y/2

' Paramètre du zoom caméra
vitesse_zoom = 0.1

' Initialisation des variables de création d'objet
num_premier_objet = 1
num_dernier_objet = 1
num_courant_objet = 1


 ' ======= Initialisation de l'affichage  =======


' Création de la fenetre
caption 0,"Créateur de map"
' width 0,screen_x
' height 0,screen_y
full_space 0
on_close 0,Quitter

' Création de la barre de menus
main_menu 1

sub_menu 2
parent 2,1
caption 2,"Fichier"
sub_menu 3
parent 3,2
caption 3,"Nouveau"
on_click 3,Nouveau_projet
sub_menu 4
parent 4,2
caption 4,"Quitter"
on_click 4,Quitter

sub_menu 5
parent 5,1
caption 5,"Créer"
inactive 5

sub_menu 6
parent 6,5
caption 6,"Cube"
On_click 6,Activation_creer_cube


sub_menu 60
parent 60,1
caption 60,"Modifier"
on_click 60,Activation_modifier
inactive 60

' Création des objets de création
' --> Paramètre de position
alpha 7
caption 7,"Position objet:"
top 7,3
left 7,screen_x - 190

alpha 8
top 8,28
left 8,screen_x - 190
caption 8,"X:"

edit 9
top 9,25
height 9,20
left 9,screen_x-180
width 9,30

alpha 10
top 10,28
left 10,screen_x - 145
caption 10,"Y:"

edit 11
top 11,25
height 11,20
left 11,screen_x-135
width 11,30

alpha 12
top 12,28
left 12,screen_x - 95
caption 12,"Z:"

edit 13
top 13,25
height 13,20
left 13,screen_x-85
width 13,30

' --> Couleur
alpha 14
caption 14,"Couleur"
top 14,48
left 14,screen_x - 190

alpha 15
top 15,68
left 15,screen_x - 190
caption 15,"R:"

edit 16
top 16,65
height 16,20
left 16,screen_x-180
width 16,30

alpha 17
top 17,68
left 17,screen_x - 145
caption 17,"V:"

edit 18
top 18,65
height 18,20
left 18,screen_x-135
width 18,30

alpha 19
top 19,68
left 19,screen_x - 95
caption 19,"B:"

edit 20
top 20,65
height 20,20
left 20,screen_x-85
width 20,30

' --> Rotation du cube

alpha 21
caption 21,"Rotation objet:"
top 21,88
left 21,screen_x - 190

alpha 22
top 22,108
left 22,screen_x - 190
caption 22,"X:"

edit 23
top 23,105
height 23,20
left 23,screen_x-180
width 23,30

alpha 24
top 24,108
left 24,screen_x - 145
caption 24,"Y:"

edit 25
top 25,105
height 25,20
left 25,screen_x-135
width 25,30

alpha 26
top 26,108
left 26,screen_x - 95
caption 26,"Z:"

edit 27
top 27,105
height 27,20
left 27,screen_x-85
width 27,30

' --> Transparence
alpha 28
caption 28,"Transparence:"
top 28,140
left 28,screen_x - 190

edit 29
top 29,137
height 29,20
left 29,screen_x-120
width 29,30

' --> Paramètre spécifiques au cube

alpha 30
caption 30,"Taille arete:"
top 30,163
left 30,screen_x - 190

edit 31
top 31,160
height 31,20
left 31,screen_x-130
width 31,30

' --> Boutton de création d'un cube
button 32
caption 32,"Valider le cube"
top 32,screen_y - 150
left 32, screen_x - 160
height 32,30
width 32,100
on_click 32,Creation_cube

' --> List pour la sélection d'objet sur la map
alpha 33
top 33,10
left 33,screen_x-190
caption 33,"Sélection objet:"

list 34
top 34,30
left 34,screen_x-190

Button 35
caption 35,"Selectionner"
Top 35,150
left 35,screen_x-150
on_click 35,Orientation_modification

' --> On cache les objets relatifs a la création d'objets 3D
for f=7 to 35
 hide f
next f

' Création de la scene 3d
 scene3d 50
 color 50,0,0,0
 axes_show
 height 50,screen_y - 120
 width 50,screen_x-200
 on_click 50,Activation_scene3d
 hide 50

 
 ' On affiche la fenetre principale
 wait 500
 ' hide 100
 show 0

 ' Pointeur 3d
    3d_sphere 1,0.1
    3d_color 1,0,255,0
    3d_transparent 1,150

' Création des TIMER

 timer 51
 timer_interval 51,5
 on_timer 51,Scene_3d
 timer_off 51
 

' Création de la fenetre de sauvegarde
save_dialog 52
filter 52,"Fichier panoramic|*.bas"

end

' ======= Ecriture des sous-programmes =======


' === Scene_3d (mouvement caméra) ===

Scene_3d:

 ' Actualisation des informaion de position
 print_locate 10,screen_y - 115
 print "Vue active" + " X=" + str$(pos_pointeur_x) + " Y=" + str$(pos_pointeur_y) + " Z=" + str$(pos_pointeur_z) + "  ==> Echap pour quitter <=="


' Détection des mouvements de souris
 if init_pos_souris=1
  init_pos_souris=0
  souris_mouv_x=mouse_x_position(50)
  souris_mouv_y=mouse_y_position(50)
 end_if

' Réinitialisation de la position curseur et calcul de son déplacement
 position_souris= dll_call2("SetCursorPos",demi_ecran_x%,demi_ecran_y%)
 sph_point_phi = sph_point_phi-(mouse_x_position(50)-souris_mouv_x)*sensi
 sph_point_teta=sph_point_teta+(mouse_y_position(50)-souris_mouv_y)*sensi

' Vérrouillage de l'axe vertical
 if sph_point_teta > 85
  sph_point_teta=85
 end_if
 if sph_point_teta < -85
  sph_point_teta=-85
 end_if

 ' Detection des cmandes clavier
 ' --> Quitter
 if scancode = 27
  scene_active = 0
  timer_off 51
  ' On écrit la position du pointeur 3d
  wait 100
  print_locate 10,screen_y - 115
  print "Vue inactive" + " X=" + str$(pos_pointeur_x) + " Y=" + str$(pos_pointeur_y) + " Z=" + str$(pos_pointeur_z) + "  ==> Cliquez pour entrer <=="
  cursor_default 50
 end_if
 
 ' --> Zoom avant
 if scancode=107 and sph_point_R > 1
  sph_point_R = sph_point_R - vitesse_zoom
 end_if
 
 if scancode=109 and sph_point_R < 10
  sph_point_R = sph_point_R + vitesse_zoom
 end_if
 
 ' --> Déplacement de la caméra
 if scancode=38
  pos_pointeur_x = pos_pointeur_x + vit_mouv_camera
 end_if
 
 if scancode=40
  pos_pointeur_x = pos_pointeur_x - vit_mouv_camera
 end_if
 
 if scancode=39
  pos_pointeur_z = pos_pointeur_z + vit_mouv_camera
 end_if
 
 if scancode=37
  pos_pointeur_z = pos_pointeur_z - vit_mouv_camera
 end_if

 ' Calcul des coordonnées de la caméra 3D
 cart_point_x = sph_point_R*cos(sph_point_teta*(3.141592654/180))*cos(sph_point_phi*(3.141592654/180))+ pos_pointeur_x
 cart_point_z = sph_point_R*cos(sph_point_teta*(3.141592654/180))*sin(sph_point_phi*(3.141592654/180))+ pos_pointeur_z
 cart_point_y = sph_point_R*sin(sph_point_teta*(3.141592654/180)) + 0.3*cam_ampli*sin(cam_osci*(3.141592654/180)) + pos_pointeur_y

 ' Actualisation affichage
 cam_position cart_point_x,cart_point_y,cart_point_z
 light_position cart_point_x+1,cart_point_y+1,cart_point_z+1
 point_position pos_pointeur_x,pos_pointeur_y,pos_pointeur_z
 3d_position 1,pos_pointeur_x,pos_pointeur_y,pos_pointeur_z

return

Activation_scene3d:
' Sous-programme qui permet de se déplacer de façon facile dans la scene 3d
' Test pour voir si l'utilisation n'a pas déja activé la scene 3d
if scene_active=0
 ' On cache le curseur
 cursor_hide 50
 
 ' On écrit la position du pointeur 3d
 print_locate 10,screen_y - 115
 print "Vue active" + " X=" + str$(pos_pointeur_x) + " Y=" + str$(pos_pointeur_y) + " Z=" + str$(pos_pointeur_z) + "  ==> Echap pour quitter <=="

 ' Initialisation position souris
 init_pos_souris = 1
 position_souris = dll_call2("SetCursorPos",demi_ecran_x%,demi_ecran_y%)

 ' Activation du timer de programme principal
 scene_active = 1
 timer_on 51
end_if

return

Quitter:
 timer_off_all
 excel_stop
 terminate
return

Activation_creer_cube:
' Programme qui active le module de création de cube
' On cache les commandes de modification
for f=33 to 35
 hide f
next f

' Affichage des commandes de création
for f=7 to 32
 show f
next f
 
 ' Création d'un nouveau numéro de cube
 num_dernier_objet = num_dernier_objet + 1
 num_courant_objet = num_dernier_objet
 
 ' On demande a l'utilisateur de nommer l'objet
 ligne$ = str$(num_courant_objet)
 excel_write "A"+ligne$,message_input$("Nom de l'objet","Donnez un nom au cube","Nouveau_cube"+ligne$)
 
return

Creation_cube:
' Programme qui permet la création de cube

' On vérifie la présence préalable du cube et on le supprime si OUI
if o3d_object_exists(num_courant_objet)=1
 3d_delete num_courant_objet
end_if

' Création de l'objet pour l'aperçu
 3d_cube num_courant_objet, val(text$(31))
 3d_position num_courant_objet,val(text$(9)),val(text$(11)),val(text$(13))
 3d_color num_courant_objet,val(text$(16)),val(text$(18)),val(text$(20))
 3d_rotate num_courant_objet,val(text$(23)),val(text$(25)),val(text$(27))
 3d_transparent num_courant_objet,val(text$(29))

 ' Enregistrement dans le fichier excel
 ligne$ = str$(num_courant_objet)
 
 excel_write "B"+ligne$,"Cube"
 excel_write "C"+ligne$,val(text$(9))
 excel_write "D"+ligne$,val(text$(11))
 excel_write "E"+ligne$,val(text$(13))
 excel_write "F"+ligne$,val(text$(16))
 excel_write "G"+ligne$,val(text$(18))
 excel_write "H"+ligne$,val(text$(20))
 excel_write "I"+ligne$,val(text$(23))
 excel_write "J"+ligne$,val(text$(25))
 excel_write "K"+ligne$,val(text$(27))
 excel_write "L"+ligne$,val(text$(29))
 excel_write "M"+ligne$,val(text$(31))

' Centrage de la caméra sur le nouvel objet
 pos_pointeur_x = val(text$(9))
 pos_pointeur_y = val(text$(11))
 pos_pointeur_z = val(text$(13))

' Calcul des coordonnées de la caméra 3D
 cart_point_x = sph_point_R*cos(sph_point_teta*(3.141592654/180))*cos(sph_point_phi*(3.141592654/180))+ pos_pointeur_x
 cart_point_z = sph_point_R*cos(sph_point_teta*(3.141592654/180))*sin(sph_point_phi*(3.141592654/180))+ pos_pointeur_z
 cart_point_y = sph_point_R*sin(sph_point_teta*(3.141592654/180)) + 0.3*cam_ampli*sin(cam_osci*(3.141592654/180)) + pos_pointeur_y

' Actualisation affichage
 cam_position cart_point_x,cart_point_y,cart_point_z
 light_position cart_point_x+1,cart_point_y+1,cart_point_z+1
 point_position pos_pointeur_x,pos_pointeur_y,pos_pointeur_z
 3d_position 1,pos_pointeur_x,pos_pointeur_y,pos_pointeur_z


' On cache les des commandes de création
 for f=7 to 35
  hide f
 next f

return


Nouveau_projet:
' Programme qui crée un nouveau projet

' On demande a l'utilisateur de désigner l'emplacement du nouveau fichier
 a$ = file_name$(52)
 fichier_courant_bas$ = a$ + ".bas"
 fichier_courant_xls$ = a$ + ".xls"

' On crée les nouveaux fichiers
 file_open_write 1,fichier_courant_bas$
 excel_file_new 2
 
 ' On crée les nom des colonnes du fichier Excel
 excel_write "A1","Nom"
 excel_write "B1","Type"
 excel_write "C1","Pos X"
 excel_write "D1","Pos Y"
 excel_write "E1","Pos Z"
 excel_write "F1","Coul R"
 excel_write "G1","Coul V"
 excel_write "H1","Coul B"
 excel_write "I1","Rot X"
 excel_write "J1","Rot Y"
 excel_write "K1","Rot Z"
 excel_write "L1","Transp"
 excel_write "M1","Arr-Ray (cube,sphere)"

' On renome la fenetre avec le nom du fichier en cours d'édition
 caption 0,fichier_courant_bas$
 
' Activation des commandes d'édition de l'environnemnt 3d
 active 5
 active 60
 inactive 3
 
' Affichage de la scene3d de travail
 show 50

' Ecriture de la date de création
file_writeln 1,"' Date de création: " + date$ + " - " + time$

' Fermeture du fichier
file_close 1

return

Activation_modifier:
' Apparition des commandes permettant de choisir le type d'objet a modifier

' On cache les commandes de modification
for f=7 to 32
 hide f
next f

' ' Affichage des commandes de sélection
for i=33 to 35
 show i
next i

' On vide la liste des items déja_présents
clear 34

' Création d'une liste des objets présents
for i=2 to num_dernier_objet
item_add 34,excel_read$("A"+str$(i))
next i

return

Orientation_modification:

' On désigne l'objet courant à modifier
num_courant_objet = item_index(34)+1
type_courant_objet$ = excel_read$("B"+str$(num_courant_objet))

' On oriente l'utilisateur vers une série de commande d'édition en fonction de la nature de l'objet
if type_courant_objet$ = "Cube"
 gosub Modification_cube
end_if

return

Modification_cube:
' Programme permettant d'éditer un cube
' On cache les commandes de modification
for f=33 to 35
 hide f
next f

' Affichage des commandes de création
for f=7 to 32
 show f
next f

' Chargement des propriétés de l'objet dans les édits
 ligne$ = str$(num_courant_objet)
 
 text 9,excel_read$("C"+ligne$)
 text 11,excel_read$("D"+ligne$)
 text 13,excel_read$("E"+ligne$)
 text 16,excel_read$("F"+ligne$)
 text 18,excel_read$("G"+ligne$)
 text 20,excel_read$("H"+ligne$)
 text 23,excel_read$("I"+ligne$)
 text 25,excel_read$("J"+ligne$)
 text 27,excel_read$("K"+ligne$)
 text 29,excel_read$("L"+ligne$)
 text 31,excel_read$("M"+ligne$)

' Centrage de la caméra sur l'objet a modifier
 pos_pointeur_x = val(text$(9))
 pos_pointeur_y = val(text$(11))
 pos_pointeur_z = val(text$(13))

' Calcul des coordonnées de la caméra 3D
 cart_point_x = sph_point_R*cos(sph_point_teta*(3.141592654/180))*cos(sph_point_phi*(3.141592654/180))+ pos_pointeur_x
 cart_point_z = sph_point_R*cos(sph_point_teta*(3.141592654/180))*sin(sph_point_phi*(3.141592654/180))+ pos_pointeur_z
 cart_point_y = sph_point_R*sin(sph_point_teta*(3.141592654/180)) + 0.3*cam_ampli*sin(cam_osci*(3.141592654/180)) + pos_pointeur_y

' Actualisation affichage
 cam_position cart_point_x,cart_point_y,cart_point_z
 light_position cart_point_x+1,cart_point_y+1,cart_point_z+1
 point_position pos_pointeur_x,pos_pointeur_y,pos_pointeur_z
 3d_position 1,pos_pointeur_x,pos_pointeur_y,pos_pointeur_z

return

Quelques éléments pour utiliser le programme:

cliquer dans le scene_3d pour allumer la rotation de la caméra et les comandes ci-dessous
• + : Zoom avant
• - : Zoom arrière
• Fleches du clavier : déplacement sur les axes X et Z

Echap : permet de quitter le déplacement dans le scene_3d pour accéder aux commandes de la fenetre

Menu Créer: permet de créer un cube
Menu modifier : Permet de modifier un cube existant

Il y a encore beaucoup de bug, le programme n'est pas encore performant et stable:
--> Le fichier texte créé n'est pas encore vraiment exploité, il recevra le code traduit en panoramic ds le futur
--> Les numéro des objets manquent de structuration...
--> Pas de chexking du remplissage des EDIT (proporiétés objets) ce qui peut amener a des pb si vous dépassez les limites (ex: 400 dans la case "R")
--> Vous rencontrez d'autres bug majeurs ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://pierrehardy.pagesperso-orange.fr/
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un inutilitaire... Qui pourrait bien devenir utile   Sam 22 Aoû 2015 - 1:05

Hum, un projet qui parait des plus intéressant. Tu peux regarder aussi ce que Bignono avait fait il y a quelques temps (1 an et demi peut être pour pouvoir éditer es monde 3D. Tu y trouverais peut être aussi quelques nouvelles idées Wink
Bon courage pour la suite.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
The Gamer

avatar

Nombre de messages : 110
Age : 23
Localisation : Toulouse (31)
Date d'inscription : 11/05/2010

MessageSujet: Re: Un inutilitaire... Qui pourrait bien devenir utile   Sam 22 Aoû 2015 - 1:06

Ah ?! Bigono a déja fait ca ?

C'est dans son webDaV ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://pierrehardy.pagesperso-orange.fr/
Jean Claude

avatar

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

MessageSujet: Re: Un inutilitaire... Qui pourrait bien devenir utile   Sam 22 Aoû 2015 - 9:06

Je n'ai pas pu essayer car je n'ai pas Excel.
C'est dommage que les commandes Excel de Panoramic ne fonctionnent pas avec OpenOffice.

Pour info, Klaus a intégré ces fonctions Excel dans KGF.dll et ça fonctionne avec OpenOffice.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Un inutilitaire... Qui pourrait bien devenir utile   

Revenir en haut Aller en bas
 
Un inutilitaire... Qui pourrait bien devenir utile
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un inutilitaire... Qui pourrait bien devenir utile
» Ma configuration est tel bien ou nul
» (résolu) bonjour je suis bien embêter avec un cheval ou un virus
» Bien le bonjour à tous.
» canton comment bien débuter pour un débutant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: