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
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Klaus Aujourd'hui à 4:52

» KGF_dll - nouvelles versions
par Klaus Hier à 23:05

» Mah-Jong européen new-look
par Minibug Hier à 22:31

» track_bar circulaire
par Klaus Hier à 13:54

» API Windows
par Klaus Hier à 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Version instantanée du 21 juillet 2010

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jack
Admin
avatar

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

MessageSujet: Version instantanée du 21 juillet 2010   Mer 21 Juil 2010 - 20:40

Une version instantanée est la version actuelle du développement de PANORAMIC, elle vous permet d'utiliser les toutes dernières améliorations, sans attendre la sortie de la prochaine version.
Une version instantanée n'a pas de procédure d'installation (c'est un fichier zip contenant l'EDITEUR).

Pour obtenir la version instantanée du 21 juillet 2010, cliquez sur Télécharger ce fichier

Voici les apports de cette version:
--------------------------------------------------------------------------------
1 - Répertoire par défaut:

DIR_DIALOG N,D$ : le répertoire D$ devient le répertoire par défaut de l'OPEN_DIALOG ou du SAVE_DIALOG de numéro N

2 - Commandes 3D:

3D_POSITION N,X,Y,Z : positionnement de l'objet 3D numéro N en (X,Y,Z)
3D_ROTATE N,AX,AY,AZ : rotation de l'objet 3D numéro N sur les 3 axes pour prendre les 3 angles Ax,AY,AZ
3D_SCALE N,CX,CY,CZ : mise à l'échelle de l'objet 3D numéro N sur les 3 axes avec les coefficients CX, CY, CZ

3 - Remplissage de surface:

2D_FLOOD X,Y,R,G,B : à partir du point (X,Y), remplit une surface en remplaçant la couleur trouvée au point (X,Y) par la couleur (R,G,B)

4 - traitement avant fermeture d'un FORM:

ON_CLOSE N,LABEL : effectue le traitement de l'événement CLOSE pour un FORM

5 - Collisions en 3D:

5.1- Définition des modes de collision pour les objets 3D:
3D_COLLISION_AS_CUBE N : l'objet 3D numéro N effectue des collisions par son cube englobant
3D_COLLISION_AS_POINT N : l'objet 3D numéro N effectue des collisions comme s'il était ponctuel. Il ne peut alors entrer en colision qu'avec des volumes.
3D_COLLISION_AS_FACES N : l'objet 3D numéro N effectue des collisions définies par ses faces
3D_COLLISION_AS_SPHERE N : l'objet 3D numéro N effectue des collisions par sa sphère englobante
3D_COLLISION_AS_ELLIPSOID N : l'objet 3D numéro N effectue des collisions par son ellipsoïde englobant, aligné sur ses axes

5.2 - test de collision:
V=O3D_COLLISION(N1,N2) : V vaut 1 si les deux objets 3D de numéro N1 et N2 sont entrés en collision, 0 sinon

6 - Objet GRID:

GRID N : création d'un GRID de numéro N. Un GRID prend automatiquement des ascenseurs horizontaux et verticaux.
GRID_COLUMN N,V : modification du nombre de colonnes du GRID de numéro N
GRID_COLUMN_WIDTH N,V : modification de la largeur des colonnes du GRID de numéro N
GRID_COLUMN_FIXED N,V : modification du nombre de colonnes fixes du GRID de numéro N
GRID_RAW N,V : modification du nombre de lignes du GRID de numéro N
GRID_RAW_HEIGHT N,V : modification de la hauteur des lignes du GRID de numéro N
GRID_RAW_FIXED N,V : modification du nombre de lignes fixes du GRID de numéro N
GRID_FIXED_COLOR N,R,G,B : définition de la couleur (R,G,B) des parties fixes du GRID de numéro N
GRID_WRITE N,L,C,V$ : écriture de V$ dans la case L (ligne) C (colonne) du GRID de numéro N
V$=GRID_READ$(N,L,C) : lecture du contenu de la case L (ligne) C (colonne) du GRID de numéro N
Remarque: la numérotation des lignes et colonnes commence à 1

7 - Le bug qui empêchait d'utiliser les SOUND (erreur au FILE_LOAD) a été corrigé
--------------------------------------------------------------------------------

Exemples:
1 - collision:
Code:
label bouge

scene3D 1:full_space 1
3d_sphere 1,0.5
3d_color 1,0,0,0
3d_position 1,-1.5,0,0
3d_collision_as_sphere 1
3d_sphere 2,0.5
3d_color 2,0,0,0
3d_position 2,0.9,0,0
3d_collision_as_sphere 2
timer 2
timer_interval 2,100
timer_on 2
on_timer 2,bouge
3D_point_object 1,2
end
bouge:
3d_move 1,0.1
if O3D_collision(1,2)=1
  caption 0,"COLLISION"
  color 1,0,0,0
  3d_color 1,255,255,255
  3d_color 2,255,255,255
  wait 100
  color 1,255,255,255
  3d_color 1,0,0,0
  3d_color 2,0,0,0
  timer_off 2
end_if
return
2 - remplissage d'un polygone:
(cet exemple a été corrigé et fonctionne: des caractères avaient sauté dans un copier/coller)
Code:
dim x0,y0,r,Px,Py,Px2,Py2,j%,n%,Pi,a

rem coordonnées du centre
x0=100
Y0=100
rem rayon
r=50
rem nombre de côtés
n%=5
rem angle de début
a=10
Pi = 3.1415926535898
Px = r * Cos(a) + x0
Py = r * Sin(a) + y0
rem couleur du contour=violet
2d_pen_color 100,50,200
2d_poly_from Px,Py
For j% = 1 To n%
  Px2 = r*Cos(a + 2*Pi*j%/n%) + x0
  Py2 = r*Sin(a + 2*Pi*j%/n%) + y0
  2d_poly_to Px2, Py2
  Px = Px2
  Py = Py2
Next j%
rem polygone rempli en violet
2d_flood x0,y0,100,50,200
3 - traitement sur fermeture d'un FORM:
Code:
label fermeture

print "cliquez sur l'icone croix"
on_close 0,fermeture
end
fermeture:
print "votre traitement ..."
print "... par exemple, attendre 3 secondes"
caption 0,"attendre 3 secondes"
wait 3000
return
4 - utilisation d'un GRID:
Code:
grid 1:width 1,400:height 1,300

grid_column 1,8
grid_raw 1,8
grid_write 1,1,1,"Cellule 1,1"
grid_write 1,1,2,"Cellule 1,2"
grid_write 1,1,3,"Cellule 1,3"
grid_write 1,2,1,"Cellule 2,1"
grid_write 1,2,2,"Cellule 2,2"
grid_write 1,2,3,"Cellule 2,3"
grid_write 1,3,1,"Cellule 3,1"
grid_write 1,3,2,"Cellule 3,2"
grid_write 1,3,3,"Cellule 3,3"
caption 0,grid_read$(1,3,2)

Edition 1 : Correction dans l'exemple 2D_FLOOD (des caractères + avaient sauté)
Edition 2 : la commande 3D_POSITION avait été oubliée, et le test de collision, c'est O3D_POSITION()


Dernière édition par Jack le Jeu 22 Juil 2010 - 15:06, édité 5 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Klaus

avatar

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

MessageSujet: Re: Version instantanée du 21 juillet 2010   Mer 21 Juil 2010 - 22:24

MERCI ! on_close et grid me seront très utiles.

Une petite question: dans une routine on_close, y a-t-il un moyen quelconque de refuser ou annuler la fermeture de la fenêtre ?

EDIT

J'ai testé on_close, et je constate ceci:
1. on_close fonctionne bien pour intercepter la fermeture d'une fenêtre par la croix rouge, qu'il s'agisse de la form 0 ou d'une autre form qu'on a créée.
2. on_close n'intercepte pas du tout l'effet d'une commande terminate
3. on_close intercepte Alt-F4 sur la fenêtre active. Si la fenêtre active est la form 0, le on_close de la form 0 sera activé, mais toutes les autres fenêtres seont fermées sans activation de leur routine on_close respective
4. avec un click droit sur l'icône du programme dans la barre de tâches, puis click gauche sur "Fermer (Alt-F4)", contrairement à la saisie directe de Alt-F4, la routine on_close de la form 0 est activée même si une autre fenêtre est la fenêtre active, puis tout est fermé sans activation des routines on_close des autres fenêtres
5. En avortant le programme par le gestionnaire des tâches, Windows affiche le message "le programme ne répond plus", puis ferme tout, sans qu'aucune routine on_close ne soit activée

Soit dit en passant: on ne peut pas supprimer une form dans sa routine on_close: cela provoque une violation d'accès.

Voici mon petit programme de mise en évidence:
Code:
' test des routines on_close
label fermer_0, fermer_1, fini
form 1
on_close 0,fermer_0
on_close 1,fermer_1
button 2
caption 2,"Fermer"
on_click 2,fini
end
fermer_1:
message "close 1"
return
fermer_0:
message "close 0"
return
fini:
' delete 1          : ' cette ligne provoque une violation d'accès
terminate

EDIT

L'objet grid est superbe, mais il reste de petites choses à voir:
1. la signification des paramètres L et C dans la commande grid_write est intervertie
2. l'évènement on_click fonctionne bien sur les cellules non-fixes du grid, ce qui est bien. Comment peut-on savoir la cellule qui a été cliquée ?
3. l'évènement on_change n'est pas utilisable avec grid

Jack, j'espère que tu prends ces commentaires pour ce qu'il sont: une critique constructive de quelqu'un qui reste admiratif du travail que tu fais !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
sergeauze

avatar

Nombre de messages : 391
Age : 65
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: Version instantanée du 21 juillet 2010   Mer 21 Juil 2010 - 23:40

belle relisation que ce flood fill.
ça fait des semaines que je tentais de le faire sans y parvenir .
je vais en user et abuser!
L'exemple de Jack ne fontionne pas chez moi.
j'ai reussi a faire fonctionner celui là
Code:

dim x0,y0,r,Px,Py,Px2,Py2,j%,n%,Pi,a
rem coordonnées du centre
x0=100
Y0=100

rem rayon
r=100

rem nombre de côtés
n%=10

rem angle de début
a=10

Pi = 3.1415926535898

Px = r * Cos(a) + x0
Py = r * Sin(a) + y0

2D_poly_from Px,Py

For j% = 1 To n%
    Px2 = r*Cos(a + 2*Pi*j%/n%) + x0
    Py2 = r*Sin(a + 2*Pi*j%/n%) + y0
    2D_poly_to Px2, Py2
    Px = Px2
    Py = Py2
Next j%
2d_flood x0,y0,100,50,200

Merci bien ajack
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Juil 2010 - 3:31

Fabuleux !
Je testerai tout cela demain,
mais ça a l'air a priori de donner des perspectives nouvelles extraordinaires !
Merci Jack !
cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Invité
Invité



MessageSujet: Re: Version instantanée du 21 juillet 2010   Jeu 22 Juil 2010 - 9:22

Je viens de télécharger, et je ne sais plus!

Qui est aujourd'hui Lucky Luke, on a dit que c'était Klaus, JL35 a relevé le défit. Rt maintenant Jack bat tout les records.

Faire autant en si peu, ce n'est même pas dans mes rèves.
Certe, il y a des erreurs, et des manques. Je vois par exemple que si on détourne la fermeture de form avec on_click 0, autre, au return, cela ferme. Donc apparemment, en cliquant sur la croix, cela fera le traitement, mais se terminera par la fermeture. C'est un début de remarque, en 10 mn on n'a pas fait tout le tour de la question.

Pour le Grid, si tu fais ensuite la même chose que pour un EDIT ou Alpha pour chaque cellule, alors je laisse mon editeur de cellules et la suite de côté. Comme dit Klaus, il faudrait aussi connaitre la dernière cellule cliquée, ausi cela peut faire par exemple une boite de message avec des choix multiples autre que entre 2 boutons déjà définis.

Mais le travail est énorme, et le présenter alors que ce n'est pas fini, montre les nouvelles possibilités de ce basic.
Effectivement la démo de remplissage ne fonctionne pas, on dirait que certains signes ne sont pas passés. J'ai fait l'essai avec un cercle, et ça marche.

A ce propos pour poster une réponse, il y a eu une transformation. J'ai voulu hier rééditer un ancien sujet, et je me suis aperçu outre que \ posait problème, mais en éditant, chaque guillemet était remplacé par \".

Je ne vais pas refaire un post pour ceci, mais si tu lis celui-ci, revoit CHAIN pour qu'il ne bloque pas l'éditeur une fois fini.
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: Version instantanée du 21 juillet 2010   Jeu 22 Juil 2010 - 10:33

Quant à la démo de remplissage, Jack a remis son code modifié en ligne - il manquait des signes "+", probablement un problème de transmission.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

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

MessageSujet: Re: Version instantanée du 21 juillet 2010   Jeu 22 Juil 2010 - 10:46

Merci pour ces nouvelles fonctions de PANORAMIC.

ON_CLOSE N en particulier est très intéressant pour moi.
Et GRID éveille ma curiosité..

Et grace aux collisions je pense que l'on va voir arriver des petits programmes rigolo.....

Quelques jours, pour tester tout çà...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
bleunounet



Nombre de messages : 150
Date d'inscription : 26/10/2007

MessageSujet: Re: Version instantanée du 21 juillet 2010   Jeu 22 Juil 2010 - 11:47

cool merci jack Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Juil 2010 - 13:49

J'ai essayé le programme de klaus, il ne crée pas d'access violation chez moi
Et j'ai aussi essayé le programme de Sergeauze,
le remplissage de pentagone violet marche bien.

@Jack :
Tout est vraiment extraordinaire,
je n'ai pas encore essayé les nouveautés 3d
mais le reste est fabuleux.

En particulier grid qui ouvre de nouvelles perspectives fabuleuses à ce langage.
Par contre, en plus des remarques déjà formulées,
je dirais qu'il est dommage qu'il n'y ait pas de possibilité
de colorer les cellules non-fixes de façon différenciée
et pour les cellules fixes, même si c'est peut-être moins important,
ce serait bien aussi de pouvoir les colorer de façon différenciée.
(cela permet de faire des tableaux, et plus ils sont colorés, plus ils sont parlants)

Et autre chose, avec des possibilités aussi extraordinaires,
il manque maintenant de façon importante
la possibilité d'imprimer (print_dialog, print_setup...).
cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Invité
Invité



MessageSujet: Re: Version instantanée du 21 juillet 2010   Jeu 22 Juil 2010 - 14:07

Bonjour jjn4
Tu verras, Jack arrivera à faire les fonctions d'impression.
Même si j'aime pas prendre de risques inutiles (sauf accident), j'en mettrais ma main à couper!
Revenir en haut Aller en bas
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Juil 2010 - 14:12

Ouh, quelle témérité !
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Juil 2010 - 14:27

Je viens d'essayer l'exemple 3D de Jack :
(en dernier, parce que moi et la 3D...)
L'exemple marche et est joli,
mais il y a 2 trucs que je ne comprends pas :

- qu'est-ce que c'est que ce 3d_position qui ne se colore pas en bleu ?
c'est donc un mot-clé nouveau, mais il n'est pas dans la liste ci-dessus !
- et qu'est-ce que ce : if 03D_collision(1,2)=1
dans la liste ci-dessus, il y a V=COLLISION(N1,N2)
mais pas de 03D_COLLISION ?
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jack
Admin
avatar

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

MessageSujet: Re: Version instantanée du 21 juillet 2010   Jeu 22 Juil 2010 - 15:09

Rien n'échappe aux yeux perçants des panoramiciens: la commande 3D_POSITION avait été oubliée, et le test de collision, c'est O3D_POSITION(). Je viens de corriger le post.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Juil 2010 - 18:43

Nous avons des yeux de lynx !
Laughing
Bon, petite question :
pourquoi le O devant O3D_COLLISION ?
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Klaus

avatar

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

MessageSujet: Re: Version instantanée du 21 juillet 2010   Jeu 22 Juil 2010 - 23:36

@jjn4: la violation d'accès a lieu si on tente de supprimer une form. dans mon programme de démo, il faut enlever l'apostrophe devant la ligne indiquée dans le commentaire, puis cliquer sur le bouton "Fermer". Le programme exécute alors "delete 1" pour supprimer la form 1, et là, boum ! Pourtant, il me semblait qu'après un bug ancien corrigé depuis quelque temps, on devrait pouvoir supprimer une form.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jjn4

avatar

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

MessageSujet: +++   Ven 23 Juil 2010 - 12:39

@Klaus:
Oui, oui, j'ai bien enlevé l'apostrophe,
mais désolé, je n'ai pas d'access violation.
Il faut croire que tous les ordi ne sont pas identiques.
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Klaus

avatar

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

MessageSujet: Re: Version instantanée du 21 juillet 2010   Ven 23 Juil 2010 - 13:13

Tu as raison: il n'y a pas de violation d'accès... Je ne sais pas du tout où j'ai trouvé cela. La commande delete 1 pour supprimer la form marche bien dans la routine on_close. Je suis vraiment désolé pour la fausse alerte.

Ceci dit, les autres remarques sur on_close restent valides !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
lagman

avatar

Nombre de messages : 204
Age : 25
Localisation : France
Date d'inscription : 07/05/2008

MessageSujet: Re: Version instantanée du 21 juillet 2010   Sam 24 Juil 2010 - 1:47

Enfin les collisions \0/ Smile What a Face Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://tfssp.populus.org/
lagman

avatar

Nombre de messages : 204
Age : 25
Localisation : France
Date d'inscription : 07/05/2008

MessageSujet: Re: Version instantanée du 21 juillet 2010   Sam 24 Juil 2010 - 5:07

Désolé pour le double post , mais quand je veux chainer deux objets 3D j'obtiens une violation d'accès ><
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://tfssp.populus.org/
Contenu sponsorisé




MessageSujet: Re: Version instantanée du 21 juillet 2010   

Revenir en haut Aller en bas
 
Version instantanée du 21 juillet 2010
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» version instantanée du 22 mai 2010: redimensionner SPRITE
» PANORAMIC_IDE: version instantanée du 25 septembre 2010
» PANORAMIC_IDE: version instantanée du 20 septembre 2010
» Version instantanée 26 septembre 2014 : PANORAMIC V 0.9.26i2
» Version instantanée du 7 janvier 2015 : PANORAMIC V 0.9.26i5

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-
Sauter vers: