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
» Logiciel de planétarium.
question pour un nul... Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
question pour un nul... Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
question pour un nul... Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
question pour un nul... Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
question pour un nul... Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
question pour un nul... Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
question pour un nul... Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
question pour un nul... Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
question pour un nul... Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
question pour un nul... Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
question pour un nul... Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
question pour un nul... Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
question pour un nul... Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
question pour un nul... Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
question pour un nul... Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

 

 question pour un nul...

Aller en bas 
3 participants
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

question pour un nul... Empty
MessageSujet: question pour un nul...   question pour un nul... EmptySam 4 Aoû 2012 - 6:13

J'ai besoin de vos lumières Idea

La première coordonnée d'un bitmap ou jpg,
le petit pixel complètement en haut à gauche,
celui dont on se fout royalement ...
...jusqu'à avoir besoin de découper une image... Laughing

Est ce (0,0) ou (1,1) ?

Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

question pour un nul... Empty
MessageSujet: re   question pour un nul... EmptySam 4 Aoû 2012 - 7:54

comme je suis nul , j'ai plein de questions... Laughing

j'ai un petit souci avec "PrintScreen.dll"

je veux faire du découpage ( oui je sais , je retombe en enfance... ...moi aussi Laughing )
la dll veut bien m'en faire dix d'affilé mais pas onze...

question pour un nul... Captur13

j'ai essayé de rajouter des pauses mais rien n'y fait, peut être suis je trop gourmand ( M...! encore un defaut Laughing )
je mets le *.bas de test dès fois que klaus passe par là.... Wink
Code:
dim rep$ ,a%,x0%,x1%,y0%,y1%,i%,T0%,L0%,T1%,L1%,x%,z%
rep$=dir_current$

label go,load_image

edit 1  :top 1,15:left 1,15
button 2:top 2,15:left 2,150:on_click 2,load_image


end

load_image:
open_dialog 5
dir_dialog 5,rep$
text 1,file_name$(5)
gosub go
return

go:
if object_exists(4)=1
  show 4
else
  form 4:width 4,307:height 4,335
  command_target_is 4
  dll_on rep$+"\PrintScreen.dll"
  picture 6:width 6,290:height 6,290
  a%=0:L0%=-57:T0%=0:L1%=0:T1%=57
  repeat
    a%=a%+1
    file_load 6,text$(1)
    clipboard_copy 6
    pause 500
    i% = dll_call0("LoadPicture")
    L0%=L0%+58
    T0%=T0%+1
    L1%=L1%+58
    T1%=T1%+1
    x0% = L0%
    y0% = T0%
    x1% = L1%
    y1% = T1%
    i% = dll_call4("ExtractRectangleFromPicture",x0%,y0%,x1%,y1%)
    pause 400
    i%=dll_call0("SavePicture")
    clipboard_paste 6
    file_save 6,rep$+"\"+str$(a%+10)+".bmp"
    pause 400
  until a%=5
  dll_off

  dll_on rep$+"\PrintScreen.dll"
  a%=5:L0%=-57:T0%=58:L1%=0:T1%=115
  repeat
    a%=a%+1
    file_load 6,text$(1)
    clipboard_copy 6
    pause 500
    i% = dll_call0("LoadPicture")
    L0%=L0%+58
    T0%=T0%+1
    L1%=L1%+58
    T1%=T1%+1
    x0% = L0%
    y0% = T0%
    x1% = L1%
    y1% = T1%
    i% = dll_call4("ExtractRectangleFromPicture",x0%,y0%,x1%,y1%)
    pause 300
    i%=dll_call0("SavePicture")
    clipboard_paste 6
    file_save 6,rep$+"\"+str$(a%+10)+".bmp"
    pause 400
  until a%=5
  dll_off

  dll_on rep$+"\PrintScreen.dll"
  a%=5:L0%=-57:T0%=116:L1%=0:T1%=173
  repeat
    a%=a%+1
    file_load 6,text$(1)
    clipboard_copy 6
    pause 500
    i% = dll_call0("LoadPicture")
    L0%=L0%+58
    T0%=T0%+1
    L1%=L1%+58
    T1%=T1%+1
    x0% = L0%
    y0% = T0%
    x1% = L1%
    y1% = T1%
    i% = dll_call4("ExtractRectangleFromPicture",x0%,y0%,x1%,y1%)
    pause 300
    i%=dll_call0("SavePicture")
    clipboard_paste 6
    file_save 6,rep$+"\"+str$(a%+10)+".bmp"
    pause 400
  until a%=5
  dll_off
end_if
return
Revenir en haut Aller en bas
Klaus

Klaus


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

question pour un nul... Empty
MessageSujet: Re: question pour un nul...   question pour un nul... EmptySam 4 Aoû 2012 - 10:14

1. Le premier pixel en haut à gauche est (0,0).

2. Je regarde ton problème.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

question pour un nul... Empty
MessageSujet: Re: question pour un nul...   question pour un nul... EmptySam 4 Aoû 2012 - 10:36

Essaie comme ceci:
Code:
dim rep$ ,a%,x0%,x1%,y0%,y1%,i%,T0%,L0%,T1%,L1%,x%,z%, s$
rep$=dir_current$

label go,load_image

edit 1  :top 1,15:left 1,15
button 2:top 2,15:left 2,150:on_click 2,load_image


end

load_image:
open_dialog 5
dir_dialog 5,rep$
s$ = file_name$(5)
if s$="_" then return
text 1,s$
gosub go
return

go:
if object_exists(4)=1
  show 4
else
  form 4:width 4,307:height 4,335
  command_target_is 4
  dll_on rep$+"\PrintScreen.dll"
  picture 6:width 6,290:height 6,290
  a%=0:L0%=-57:T0%=0:L1%=0:T1%=57
  repeat
    a%=a%+1
    file_load 6,text$(1)
    clipboard_copy 6
    pause 500
    i% = dll_call0("LoadPicture")
    L0%=L0%+58
    T0%=T0%+1
    L1%=L1%+58
    T1%=T1%+1
    x0% = L0%
    y0% = T0%
    x1% = L1%
    y1% = T1%
    i% = dll_call4("ExtractRectangleFromPicture",x0%,y0%,x1%,y1%)
    pause 400
    i%=dll_call0("SavePicture")
    clipboard_paste 6
    file_save 6,rep$+"\"+str$(a%+10)+".bmp"
    pause 400
  until a%=5
  dll_off

  dll_on rep$+"\PrintScreen.dll"
  a%=5:L0%=-57:T0%=58:L1%=0:T1%=115
  repeat
    a%=a%+1
    file_load 6,text$(1)
    clipboard_copy 6
    pause 500
    i% = dll_call0("LoadPicture")
    L0%=L0%+58
    T0%=T0%+1
    L1%=L1%+58
    T1%=T1%+1
    x0% = L0%
    y0% = T0%
    x1% = L1%
    y1% = T1%
    i% = dll_call4("ExtractRectangleFromPicture",x0%,y0%,x1%,y1%)
    pause 300
    i%=dll_call0("SavePicture")
    clipboard_paste 6
    file_save 6,rep$+"\"+str$(a%+10)+".bmp"
    pause 400
  until a%=10
  dll_off

  dll_on rep$+"\PrintScreen.dll"
  a%=10:L0%=-57:T0%=116:L1%=0:T1%=173
  repeat
    a%=a%+1
    file_load 6,text$(1)
    clipboard_copy 6
    pause 500
    i% = dll_call0("LoadPicture")
    L0%=L0%+58
    T0%=T0%+1
    L1%=L1%+58
    T1%=T1%+1
    x0% = L0%
    y0% = T0%
    x1% = L1%
    y1% = T1%
    i% = dll_call4("ExtractRectangleFromPicture",x0%,y0%,x1%,y1%)
    pause 300
    i%=dll_call0("SavePicture")
    clipboard_paste 6
    file_save 6,rep$+"\"+str$(a%+10)+".bmp"
    pause 400
  until a%=15
  dll_off
end_if
return

Seule la première boucle REPEAT se terminait normalement. Dès la seconde, la condition de fin n'était plus rencontrée, et ça bouclait à l'infini.

J'ai ajouté la possibilité de ne pas choisir un fichier, pour le confort.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

question pour un nul... Empty
MessageSujet: re   question pour un nul... EmptySam 4 Aoû 2012 - 11:42

cheers Merci Klaus, çà fonctionne

le but du truc est d'ajouter cette fonction à mon puzzle
comme çà plus besoin d'avoir une multitude de fichiers image.
il n'y aurait plus besoin que du fichier de base ( image entière)
A la sélection d'une des images par le joueur, le programme pourrait créer
les "pseudos sprites" dans un fichier "Temp" et seraient détruits après usage,
à la femeture de la partie.
Cela fera un "gosub de plus mais je n'en suis plus à un près ... Laughing

Pour le premier pixel, j'avais un gros doute sur certains site, ils disent (1,1)
mais il est vrai que nous sommes en Panoramic.... Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

question pour un nul... Empty
MessageSujet: Re: question pour un nul...   question pour un nul... EmptySam 4 Aoû 2012 - 13:11

... et sous Delphi en ce qui concerne la DLL. Et là aussi, c'est (0,0).

Ton idée de création de Sprite par découpage d'une grande image est excellente ! A appliquer dans d'autres domaines, par exemple pour avoir les images des boutons d'une tool-bar: il suffit de constituer une seule image avec un éditeur d'images (Paint, PhotoFiltre, Gimp, ...) avec toutes les icônes voulues. On distribue cette image avec l'exécutable, et il n'y a plus qu'à découper les images pour chaque bouton individuel. Et on peut facilement imaginer d'autres applications...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

question pour un nul... Empty
MessageSujet: Re: question pour un nul...   question pour un nul... EmptySam 4 Aoû 2012 - 15:34

En plus Jack nous à dit qu'il ferait l'équivalent des fonctions de la DLL directement intégré à Panoramic Wink C'est vrai que ce sont des fonctions basiques de traitement d'images mais qu'elles sont juste fondamentales dès que l'on veut faire certains types d'opérations.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

question pour un nul... Empty
MessageSujet: re   question pour un nul... EmptySam 4 Aoû 2012 - 20:10

Le plus compliqué dans mon découpage c'est de trouver
les bonnes données pour obtenir dans une image
de 290x290 des sprites de 58x58.

Quelque soit les chiffres que je mette, çà ne colle pas,
et vu que les abscisses et ordonnés sont inversés
(point (0,0) en haut gauche au lieu de bas gauche )
par rapport à un graphique classique, je suis un peu perturbé... geek

je vous mets ma boucle de création dans son état :
Code:
dim rep$ ,a%,x0%,x1%,y0%,y1%,i%,T0%,L0%,T1%,L1%,x%,z%, s$,b%
rep$=dir_current$

label go,load_image

edit 1  :top 1,15:left 1,15
button 2:top 2,15:left 2,150:on_click 2,load_image


end

load_image:
open_dialog 5
dir_dialog 5,rep$
s$ = file_name$(5)
if s$="_" then return
text 1,s$
gosub go
return

go:
if object_exists(4)=1
  show 4
else
  form 4:width 4,307:height 4,335
  command_target_is 4
  dll_on rep$+"\PrintScreen.dll"
  picture 6:width 6,290:height 6,290
  for x%=1 to 5
    if x%=1
        a%=0:b%=5:L0%=-58:T0%=0:L1%=0:T1%=57
    else
        if x%=2
        a%=5:b%=10:L0%=-58:T0%=59:L1%=0:T1%=116
        else
          if x%=3
          a%=10:b%=15:L0%=-58:T0%=117:L1%=0:T1%=174
          else
              if x%=4
              a%=15:b%=20:L0%=-58:T0%=175:L1%=0:T1%=232
              else
              a%=20:b%=25:L0%=-58:T0%=233:L1%=0:T1%=290
              end_if
          end_if
        end_if
    end_if
    repeat
        a%=a%+1
        file_load 6,text$(1)
        clipboard_copy 6
        pause 500
        i% = dll_call0("LoadPicture")
        L0%=L0%+58
        L1%=L1%+58
        x0% = L0%
        y0% = T0%
        x1% = L1%
        y1% = T1%
        i% = dll_call4("ExtractRectangleFromPicture",x0%,y0%,x1%,y1%)
        pause 400
        i%=dll_call0("SavePicture")
        clipboard_paste 6
        file_save 6,rep$+"\"+str$(a%+10)+".bmp"
        pause 400
    until a%=b%
  next x%
dll_off
end_if
return

Autre chose, le découpage provoque un bord blanc .
(çà doit être mon ciseau qui est de mauvaise qualité .... Laughing )
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

question pour un nul... Empty
MessageSujet: Re: question pour un nul...   question pour un nul... EmptySam 4 Aoû 2012 - 20:31

premier 0-> 57, 2eme 58->115, 3 ème 116->173, 4 eme: 174-> 231, 5eme 232 -> 289
tu fais une boucle de i allant de 0 à 4 et tu calcules: pos départ: 0+i*58 et arrivée 0+i*58
pareil pour les y
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

question pour un nul... Empty
MessageSujet: re   question pour un nul... EmptySam 4 Aoû 2012 - 22:56

Bon, je tiens un code qui fonctionne... Wink

maintenant si quelqu'un a plus court, je suis preneur... Laughing

Code:
dim rep$ ,a%,x0%,x1%,y0%,y1%,i%,T0%,L0%,T1%,L1%,x%,z%, s$,b% ,g%
rep$=dir_current$
width 0,300:height 0,90
label go,load_image,Quitter

edit 1  :top 1,15:left 1,15
button 2:top 2,15:left 2,150:on_click 2,load_image

if g%=25 then gosub Quitter
end

load_image:
open_dialog 5
dir_dialog 5,rep$
s$ = file_name$(5)
if s$="_" then return
text 1,s$
gosub go
if object_exists(4)=1 then delete 4
return

go:
  form 4:hide 4:width 4,307:height 4,335
  command_target_is 4
  dll_on rep$+"\PrintScreen.dll"
  picture 6:width 6,290:height 6,290
  g%=0
  for x%=1 to 5
    if x%=1
        a%=0:b%=5:L0%=-58:T0%=0:L1%=0:T1%=57
    else
        if x%=2
        a%=5:b%=10:T0%=58:T1%=115
        else
          if x%=3
          a%=10:b%=15:T0%=116:T1%=173
          else
              if x%=4
              a%=15:b%=20:T0%=174:T1%=231
              else
              a%=20:b%=25:T0%=232:T1%=289
              end_if
          end_if
        end_if
    end_if
    repeat
        a%=a%+1
        g%=g%+1
        caption 2,str$(g%)
        file_load 6,text$(1)
        clipboard_copy 6
        pause 500
        i% = dll_call0("LoadPicture")
        if a%=((x%-1)*5)+1
          L0%=0
          L1%=57
        else
          if a%=((x%-1)*5)+2
              L0%=58
              L1%=115
          else
              if a%=((x%-1)*5)+3
                L0%=116
                L1%=173
              else
                if a%=((x%-1)*5)+4
                    L0%=174
                    L1%=231
                else
                    if a%=((x%-1)*5)+5
                      L0%=232
                      L1%=289
                    end_if
                end_if
              end_if
          end_if
        end_if
        x0% = L0%
        y0% = T0%
        x1% = L1%
        y1% = T1%
        i% = dll_call4("ExtractRectangleFromPicture",x0%,y0%,x1%,y1%)
        pause 400
        i%=dll_call0("SavePicture")
        clipboard_paste 6
        file_save 6,rep$+"\Sprite\"+str$(a%+10)+".bmp"
        pause 400
    until a%=b%
  next x%
dll_off
command_target_is 0
if g%=25 then gosub Quitter
return

Quitter:
terminate
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

question pour un nul... Empty
MessageSujet: re   question pour un nul... EmptyDim 5 Aoû 2012 - 5:23

J'essaye d'intégrer cette "massicot" à mon Puzzle mais la je crois que j'ai un problème de gestion de dll
si j'en fais un outils externe il fonctionne avec la dll, tout va bien Very Happy

si je l'appelle par "execute_wait" avec en paramètre le nom du fichier à découper, plus moyen de charger la dll. affraid
pourtant j'ai fait attention de mettre l'appel en dehors de l'utilisation d'une autre par le programme mère.(Puzzle3 dans le zip)

@ Klaus,

Aurais tu un exemple d'utilisation de ta dll "DynamicallyLoadDLL.dll"




Revenir en haut Aller en bas
Klaus

Klaus


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

question pour un nul... Empty
MessageSujet: Re: question pour un nul...   question pour un nul... EmptyDim 5 Aoû 2012 - 9:07

Dans DLL_Divers.zip disponibe sur mon site, il y a ce programme:
Code:
' test DynamicallyLoadDLL.bas
'
' Ce programme met en évidence les possibilités de DynamicallyLoadDLL.dll

label unload, recept, send

dim handle_LoadProgram%, handle_IPC%, nom1$, nom2$, i%, index%, cnt%, id_boite%
dim handle_calc%, handle_message%,mes$, form_hnd%, s$, hnd0%, hnd_calc%

' création du GUI
caption 0,"Test DynamicallyLoadDLL"
on_close 0,unload
edit 1: top 1,-1100 : left 1,-1100 : on_change 1,recept : ' boite mail
button 2 : top 2,10 : left 2,10 : width 2,120 : caption 2,"Envoi message" : on_click 2,send
alpha 3 : top 3,60 : left 3,10
s$ = "La calculatrice est utilisable en agrandissant sa fenêtre."+chr$(13)+chr$(10)+chr$(10)
s$ = s$ + "En cliquant sur le bouton, on envoie un message dont la réception est signalée."
caption 3,s$

' quelques initialisations
form_hnd% = handle(0)
nom1$ = "LoadProgram.dll"
nom2$ = "IPC.dll"
cnt% = 0
id_boite% = -1100

' Pour Panoramic, une seule DLL est connue: celle de chargement dynamique d'autres DLL !
dll_on "DynamicallyLoadDLL.dll"
handle_LoadProgram% = dll_call1("LoadDLL",adr(nom1$))    : ' charger LoadProgram.dll
handle_IPC% = dll_call1("LoadDLL",adr(nom2$))            : ' charger IPC.dll

' connecter le système de messages sur notre boite de réception
s$ = "IPCGetHandle"
index% = dll_call2("TargetDLL",handle_IPC%,adr(s$))      : ' pointer sur la routine IPCGetHAndle
s$ = caption$(0)
handle_message% = dll_call3("CallDLL3",adr(s$),len(s$),id_boite%)  : ' et appeler cette routine

s$ = "LoadProgramMinimized"                              : ' pointer sur la routine LoadProgramMinimized
index% = dll_call2("TargetDLL",handle_LoadProgram%,adr(s$))
hnd0% = handle(0)
hnd_calc% = dll_call2("CallDLL2",2,hnd0%)                : ' et appeler cette routine

' handle_calc% = dll_call2("LoadProgramMinimized",2,form_hnd%)

end

' envoi d'un message
send:                                                    : ' pointer sur la routine IPCSendMessage
    s$ = "IPCSendMessage"
    index% = dll_call2("TargetDLL",handle_IPC%,adr(s$))
    cnt% = cnt% + 1
    mes$ = "Juste pour voir..."+str$(cnt%)
    i% = dll_call3("CallDLL3",adr(mes$),len(mes$),handle_message%)    : ' et appeler cette routine
    return

' évènement "réception d'un message"
recept:
    message "Message recu: "+text$(1)                      : ' afficher le message reçu
    return

' décharger les DLL inconnus de Panoramic
unload:
    i% = dll_call1("UnLoadDLL",handle_IPC%)
    i% = dll_call1("UnLoadDLL",handle_LoadProgram%)
    return

end


Il utilise DynamicallyLoadDLL.dll pour charger simultanément LoadProgram.dll et IPC.DLL et permet de les utiliser simultanément...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

question pour un nul... Empty
MessageSujet: re   question pour un nul... EmptyDim 5 Aoû 2012 - 9:38

@ Klaus

Je vais étudier cela de très près, de très près... study
Revenir en haut Aller en bas
Contenu sponsorisé





question pour un nul... Empty
MessageSujet: Re: question pour un nul...   question pour un nul... Empty

Revenir en haut Aller en bas
 
question pour un nul...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Aide-mémoire des mots-clés Panoramic
» Question pour un SPIN
» Question pour Klaus au sujet de SearchStringList.
» Question pour un champion... (d'informatique)
» Bavardage / question pour un chaînage de chapitres

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: