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
» mise a jour calculatrice
par JL35 Aujourd'hui à 14:14

» [solved] 3D_LINE How to ?
par papydall Aujourd'hui à 6:51

» 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 | 
 

 Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1

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

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

MessageSujet: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Dim 27 Nov 2011 - 14:08

Version instantanée du 27 novembre 2011: PANORAMIC V 0.9.23i1

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).
Les nouveaux mots-clés n'ont pas de coloration syntaxique dans l'EDITEUR.

Pour obtenir la version instantanée, cliquez sur *** annulé ***

Voici les apports de cette version, par rapport à la dernière version régulière PANORAMIC V0.9.22 du 5 novembre 2011:

1 - correction de bugs sur des objets 3D:
Les commandes 3D_HIDE et 3D_SHOW n'agissaient pas sur les objets 3D 3D_PLANE et 3D_SKYBOX.
Les commandes 3D_TRANSPARENT et 3D_MOVE n'agissaient pas sur les objets 3D 3D_PLANE.
Les fonctions O3D_X_POSITION(), O3D_Y_POSITION(), O3D_Z_POSITION(), O3D_X_ROTATE(), O3D_Y_ROTATE(), O3D_Z_ROTATE(), O3D_X_SCALE(), O3D_Y_SCALE(), O3D_Z_SCALE() n'agissaient pas sur les objets 3D 3D_PLANE.
les numéros des objets 3D 3D_PLANE étaient limités.

2 - correction de bugs sur des fonctions:
problème quand N est grand sur OBJECT_EXISTS(N), OBJECT_TYPE(N), O3D_OBJECT_EXISTS(N), O3D_OBJECT_TYPE(N), SPRITE_EXISTS(N).

3 - améliorations:
CLIPBOARD_COPY et CLIPBOARD_PASTE s'appliquent aussi aux objets système PICTURE(9) et [b]IMAGE.
FONT_SIZE : il n'y a plus la limite de 30 à la taille de la police

4 - nouvelle fonction:
HANDLE_FORM("titre") : retourne le handle d'une fenêtre (PANORAMIC ou pas) dont on connait le caption
Exemple:
Code:
execute "notepad.exe"
wait 1000
caption 0,handle_form("Sans titre - Bloc-notes")

5 _ nouvelle commande:
FREE Variable : libère la variable
Exemple:
Code:
dim v(10),t$
free v
free t$
dim v(100),t$


Dernière édition par Jack le Sam 28 Jan 2012 - 9:53, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
jjn4

avatar

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

MessageSujet: +++   Dim 27 Nov 2011 - 14:16

Ouahhh, fabuleux, merci Jack !
king king king
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jicehel

avatar

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

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Dim 27 Nov 2011 - 15:10

Je n'aurais pas dis mieux jjn4, gros boulot et des modifs majeures en plus en prime comme le FREE ... bienvenue aux variables locales ^^.
Merci Jack
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Dim 27 Nov 2011 - 16:25

Dûment testé en ce qui concerne le point 3: copie d'image dans le clipboard, levée de la limitation de taille de fonte.
Parfait, merci Jack. Je vais pouvoir reprendre quelques programmes qui étaient en jachère.

FREE variable, très bien pour les variables locales, ça ouvre la voie aux bibliothèques de s/p: dim des variables en tête, free avant le return.
(remarque: il faut un FREE par variable, pas comme DIM v1, v2 etc...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 27 Nov 2011 - 23:25

Super Jack ! je fonce au téléchargement !
cheers cheers cheers cheers cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Lun 28 Nov 2011 - 12:15

@Jicehel:
La commande FREE n'apporte rien au principe des variables locales.... Wink
Elle doit être vue comme étant un moyen de libérer la place occupée en RAM par des variables GLOBALES.
Autrement dis: elle permet de manipuler des variables globales temporaires...

Ce qui apporte vraiment quelque chose sur le traitement des variables locales, c'est la commande VARIABLE( )


Exemple de simulation simplifiée de variables locales:
Code:

LABEL NRETURN
LABEL DIM_MaVariable

GOSUB DIM_MaVariable : ' on simule la cde "DIM MaVariable"
LABEL Test

FOR MaVariable=1 TO 3
  PRINT "Appel n°";MaVariable
  GOSUB Test
NEXT MaVariable

END


Test:
  GOSUB DIM_MaVariable : ' on simule un DIM "local" de la variable "MaVariable"
  ' A partir de maintenant, on peut utiliser "MaVariable" comme une variable locale
  FOR MaVariable = 5 TO 7
    PRINT "  Test:";MaVariable
  NEXT MaVariable
  GOSUB NRETURN  : ' on simule la commande "RETURN"
RETURN


' -----------------------------------------
' Simulation d'une commande DIM "MaVariable"
' -----------------------------------------
' Pour pouvoir utiliser "MaVariable" comme variable locale, il faut vérifier son existence.
' Si elle est déjà déclarée :
'  il faut sauvegarder son contenu dans une DLIST spécifique
' Sinon
'  déclaration de "MaVariable"
'  création d'une DLIST pour les eventuels DIM locaux de MaVariable
' Finsi
DIM_MaVariable:
  IF VARIABLE("MaVariable")=0
    DIM MaVariable
    DIM VAR_MaVariable: VAR_MaVariable = NUMBER_OBJECTS+1
  ELSE
    IF OBJECT_EXISTS(VAR_MaVariable)=0 THEN VAR_MaVariable = NUMBER_OBJECTS+1 : DLIST VAR_MaVariable
    ITEM_ADD VAR_MaVariable, MaVariable
  END_IF
RETURN


' -----------------------------------------
' Simulation "simplifiée" d'une commande RETURN
' -----------------------------------------
' A la fin de la procédure, on teste si la variable "MaVariable" a été sauvegardée
' normalement il faudrait également tester si un DIM local de "MaVariable" a été réalisé...
NRETURN:
 ' si c'est le cas, on lui restitue son contenu
  IF COUNT(VAR_MaVariable)<>0
    MaVariable=VAL(ITEM_READ$(VAR_MaVariable,COUNT(VAR_MaVariable)))
    ' puis on supprime la sauvegarde temporaire
    ITEM_DELETE VAR_MaVariable,COUNT(VAR_MaVariable)
    IF COUNT(VAR_MaVariable)=0 THEN DELETE VAR_MaVariable
  END_IF
RETURN
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jicehel

avatar

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

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Lun 28 Nov 2011 - 13:07

Heu, là, je ne suis pas d'accord Nardo,
On peut déjà écrire des sous programme qui déclare les variables avec des noms complexes et qui les libère en de traitement du sous programme.
C'est en effet des variables 'globales' puisqu'elles ne doivent pas être utilisé dans le programme principal a d'autres fin, mais pendant le traitement, elles sont utilisées comme globales ou locales.
C'est la façon de les utiliser qui permet de 'simuler' des variables locales en respectant quelques règles comme la non utilisation d'événements pendant le traitement du sous programme, etc ... et la libération en fin de traitement.

C'est donc un pas vers les variables locales selon moi, mais c'est vrai que l'utilisation de variable a bon escient permet de faire des contrôlmes et de sécuriser le programme et d'utiliser la pile comme tu le fait dans ton programme (qui est très interessant et permet en effet d'avoir une structure pour 'localiser' les variables avec plus de sécurité)

(J'espère que ma réponse n'est pas trop confuse ... )

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Lun 28 Nov 2011 - 13:55

Citation :
Heu, là, je ne suis pas d'accord Nardo,...
Au contraire, je crois que l'on est d'accord ! Wink
La description que tu donnes correspond à ce que j'appelle "des variables globales temporaires"...

il n'y a qu'à voir les noms à rallonge que j'utilise dans certains programmes : j'essaye de "normaliser" ma façon de les nommer :" Nomprocedure_NomVariable" de manière à avoir un nom unique...
Je pourrais très bien faire un free à la fin de chaque procédure mais vu la capacité des RAM sur nos bécane, cela n'est pas vraiment nécessaire...
mes DIMs sont mis dans les procédures et je fais un test avec variable(), de manière à pouvoir plus facilement faire un copier/coller de ces procédures d'un programme à un autre...

Là dans le cas présent, pourquoi je met l'accent sur cette notion de pile? Tu dois bien t'en douter... non ? Wink
-> C'est pour pouvoir gérer les appels récursifs. (c'est un des points important dans la gestion des variables locales...)

Pour la réentrance, il faudrait (peut être) également mémoriser l'indice de la variable dans la pile.. mais là, c'est un autre problème... Wink

Mon exemple est une simulation, car j'utilise aussi une variable globale.
Mais sa gestion en beaucoup plus proche de ce que devrait être une véritable variable locale...
Mon erreur c'est d'avoir écrit l'exemple en Panoramic: pour éviter toute confusion, j'aurais dû écrire l'exemple en pseudo-code...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jicehel

avatar

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

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Lun 28 Nov 2011 - 14:09

Non, c'est bien, ça permet de commencer à structurer nos programmes, c'est cool Smile (Enfin, il va falloir prendre l'habitude qu'en même ...). La libération des varaibles est sympa, ne serait-ce que pour ne pas remplir inutillement la pile, d'autant que l'on sait que l'on finit toujours par atteindre des limites dans les piles. (En plus toi qui aime bien les trucs propres et structurés Smile ...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Lun 28 Nov 2011 - 16:24

Il n'y a aucune habitude à apprendre, c'est ma façon de faire, chacun est libre procéder comme il l'entend... Wink

La commande FREE NomVariable offre un intêret dans le cas d'utilisation de variables globales à nom unique sans appels récursifs (pour faire propre Wink ).
Par exemple :
Code:
LABEL Math_Init:GOSUB Math_Init
Racine_param = 5 : GOSUB Racine
PRINT "Racine(";Racine_param;") = ";Racine_return
Factorielle_param = 5: GOSUB Factorielle
PRINT Factorielle_param;"! = ";Factorielle_return
END

' ------------------------------------
' Librairie
' ------------------------------------
Math_Init:
    LABEL Racine : DIM Racine_param, Racine_return
    LABEL Factorielle : DIM Factorielle_param, Factorielle_return
RETURN

' Methode Newton
Racine:
    DIM Racine_i : ' variable pour calcul interne à la procédure
    Racine_return = 7
    FOR Racine_i = 0 TO 6
        Racine_return = ((Racine_param / Racine_return) + Racine_return) / 2
    NEXT Racine_i
    FREE Racine_i
RETURN

Factorielle:
    DIM Factorielle_i
    Factorielle_return = 1
    FOR Factorielle_i = 1 TO Factorielle_param
        Factorielle_return = Factorielle_return * Factorielle_i
    NEXT Factorielle_i
    FREE Factorielle_i
RETURN

Dans cet exemple, les variables ######_i sont ce que j'appelle, des variables "jetables" donc on peut se permettre de les supprimer... Smile

J'ai pas d'exemples flagrants concernant la commande FREE mais je suppose que d'autres personnes trouverons des exemples plus parlants... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Klaus

avatar

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

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Lun 28 Nov 2011 - 19:32

Génial, Jack ! Les commandes HANDLE_FORM et FREE_VARIABLE sont d'un grand intérêt pour moi ! As-tu considéré d'ajouter une commande FREE_LABEL également ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

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

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Lun 28 Nov 2011 - 19:38

Je sens que Klaus a déjà des idée de DLL qui arrivent avec ces fonctions ^^ (Enfin, tu as déjà de quoi faire avec les DLL d'impression, tu commences sans doute juste a avoir des idées pour celles d'après)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Mer 30 Nov 2011 - 2:00

Bonsoir,

Apparemment Handle_form ne fonctionne pas correctement sous Win7 :


Dans l'exemple ci-dessus, le bloc-notes n'est pas détecté... Neutral
Je testerai demain sous XP...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 30 Nov 2011 - 8:34

le pb est apparemment avec le bloc notes
cela fonctionne pour une fenêtre OpenOffice.org Writer
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   Mer 30 Nov 2011 - 11:57

Exact, ça semble être un problème avec le bloc-notes, j'ai essayé avec d'autres (Win 7), ça marche.
(j'ai même essayé le bloc-notes avec 'Untitled - Notepad', c'est pas mieux ! Very Happy )

Incidemment, le Handle_Form est insensible à la casse, c'est bien.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1   

Revenir en haut Aller en bas
 
Version instantanée du 27 novembre 2011:PANORAMIC V 0.9.23i1
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Version instantanée du 7 janvier 2015 : PANORAMIC V 0.9.26i5
» Version instantanée du 30 mai 2015 : PANORAMIC V 0.9.26i6
» Version instantanée 26 septembre 2014 : PANORAMIC V 0.9.26i2
» PANORAMIC_IDE: version instantanée du 25 septembre 2010
» PANORAMIC_IDE: version instantanée du 20 septembre 2010

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: