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
» SineCube
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Marc Aujourd'hui à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Marc Aujourd'hui à 12:22

» Philharmusique
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar jjn4 Hier à 13:58

» PANORAMIC V 1
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar leclode Sam 27 Avr 2024 - 17:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

 

 Pour Klaus et Jack: création de fonctions inexistantes.

Aller en bas 
2 participants
AuteurMessage
pan59

pan59


Nombre de messages : 367
Age : 66
Localisation : Wattignies
Date d'inscription : 16/10/2011

Pour Klaus et Jack: création de fonctions inexistantes. Empty
MessageSujet: Pour Klaus et Jack: création de fonctions inexistantes.   Pour Klaus et Jack: création de fonctions inexistantes. EmptyJeu 5 Déc 2013 - 10:56

Bonjour.

Voici le code d'un petit programme sans prétention, permettant d'ajouter de nouvelles fonctions à Panoramic.

Ce code est facile à appréhender.

Qu'en pensez-vous ?

Merci de vos remarques éventuelles.

Code:
dim a$, b$, variable_retour$, fonction$, liste_argument$, resultat$, temporaire$, t$
dim argument$(10)
dim parametre
dim kk%, res%, true%, yy%

true%=1

label traiter_fonction

edit 100
left 100,-200
on_change 100,traiter_fonction

' Placer les arguments chaînes entre '' et non entre "".

text 100,"b$=TrimLeft$('-----Bonjour','-')"
message b$

text 100,"yy%=Instring('Bonjour','j',3)"
message str$(yy%)

text 100,"b$=Flip$('Bonjour')"
message b$

parametre=450
text 100,"yy%=Wrap(parametre)"
message str$(yy%)

end

traiter_fonction:

   t$=text$(100)
   if len(t$)>0
      t$=left$(t$,len(t$)-1)

      yy%=instr(t$,"=")
      variable_retour$=left$(t$,yy%-1)
      t$=mid$(t$,yy%+1,len(t$))

      yy%=instr(t$,"(")
      fonction$=left$(t$,yy%-1)
      liste_argument$=mid$(t$,yy%+1,len(t$))
  
      lire_arguments()
  
      traiter_fonction()
  
      enregistrer_resultat()
   end_if
  
return

sub lire_arguments()

    kk%=0
    while true%=1
        kk%=kk%+1
        yy%=instr(liste_argument$,",")
        if yy%=0
           argument$(kk%)=liste_argument$
              else
           argument$(kk%)=left$(liste_argument$,yy%-1)
        end_if
        
        if left$(argument$(kk%),1)="'" then argument$(kk%)=mid$(argument$(kk%),2,len(argument$(kk%))-2)

        ' Le parametre est la variable 'parametre'.
        if argument$(kk%)="parametre" then argument$(kk%)=str$(parametre)

        if yy%=0 then exit_while

        liste_argument$=mid$(liste_argument$,yy%+1,len(liste_argument$))
    end_while

end_sub

sub traiter_fonction()

    if fonction$="TrimLeft$"
       resultat$=argument$(1)

       while true%=1
             if left$(resultat$,1)<>argument$(2) then exit_while
             resultat$=mid$(resultat$,2,len(resultat$))
       end_while
    end_if

    if fonction$="Instring"
       res%=val(argument$(3))-1+instr(mid$(argument$(1),val(argument$(3)),len(argument$(1))),argument$(2))
       if res%<val(argument$(3)) then res%=0
    end_if
    
    if fonction$="Flip$"
       resultat$=""
       for kk%=len(argument$(1)) to 1 step -1
           resultat$=resultat$+mid$(argument$(1),kk%,1)
       next kk%
    end_if

    if fonction$="Wrap" then res%=wrap_value(val(argument$(1)))
    
end_sub

sub enregistrer_resultat()

    if variable_retour$="a$" then a$=resultat$
    if variable_retour$="b$" then b$=resultat$
    
    if variable_retour$="yy%" then yy%=res%
    
end_sub
Revenir en haut Aller en bas
Klaus

Klaus


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

Pour Klaus et Jack: création de fonctions inexistantes. Empty
MessageSujet: Re: Pour Klaus et Jack: création de fonctions inexistantes.   Pour Klaus et Jack: création de fonctions inexistantes. EmptyJeu 5 Déc 2013 - 11:42

C'est une technique intéressante. Tu utlises l'évènement ON_CHANGE pour provoquer l'exécution de ce que l'on peut appeler un interpréteur, dont la structure est fournie par toi et dans lequel chacun peut accrocher l'implémentation de ses propres fonctions. Ces implémentations sont réalisées en Panoramic.

C'est une autre façon de faire ce qu'on peut faire avec les procédures. Plus souple sur certains aspects, mais également plus contraignant sur d'autres. En tout cas, une technique intéressante qu'il convient de garder dans la panoplie des solutions possibles !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
 
Pour Klaus et Jack: création de fonctions inexistantes.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Création de fonctions inexistantes en Panoramic.
» Aide pour la création d'un wrapper pour le langage Linotte.
» Fonctions d'envoyer de touches à un objet interne ou externe
» 2 syntaxes pour la création d'objet
» une boucle pour la création d' objets système

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: