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
» Tout est tranquille
par Jean Claude Hier à 21:41

» Texte en gif animé
par JL35 Hier à 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

» Compilateur FBPano
par jean_debord Ven 15 Sep 2017 - 9:59

» 1 (en analyse): 3D_TARGET_IS ne fonctionne pas sur 3D_TEXT
par Jack Jeu 14 Sep 2017 - 19:52

» Problème avec la 3D.
par Jack Jeu 14 Sep 2017 - 18:06

» Test de la 3D.
par mindstorm Mer 13 Sep 2017 - 19:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Nouveauté: des scripts en Panoramic !

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

avatar

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

MessageSujet: Nouveauté: des scripts en Panoramic !   Ven 11 Jan 2013 - 20:58

J'ai fait une nouvelle implémentation de l'utilisation de scripts. Cette fois, les scripts sont réalisés entièrement en Panoramic ! Donc, nul besoin d'apprendre un autre langage quelconque !

Quelle utilité ?
On peut créer dynamiquement des programmes et les exécuter en récupérant les résultats. On peut aussi laisser l'utilisateur saisir des programmes et les faire exécuter.

Comment on fait ?
Cela est réalise via des fonctions dans KGF.dll, et qui sont "enveloppées" également par KGF_SUB.bas. Dans le programme appelant, il faut faire 3 choses:
1. initialiser le système de script
2. fournir le script à exécuter en Panoramic
3. exécuter le script

C'est tout. La DLL va se charger de créer l'environnement nécessaire. Pour les paramètres à fournir en entrée, c'est élémentaire: comme on crée le script en Panoramic, il suffit de déclarer des variables dans lesquelles on place les valeurs nécessaires, puis on travaille avec, dans le script. Pour les paramètres de retour, il faut prévoir un objet LIST (l peut être invisible) et passer le numéro de l'objet à la procédure KGF_SUB, ou le handle de l'objet à la fonction DLL. Et dans le script en Panoramic, on utilise une procédure spéciale, créée automatiquement, de la manière suivante:
Code:
ParamicScriptResult(nom$,valeur$)

comme par exemple:
ParamicScriptResult("Taux","34")
ParamicScriptResult("Date",date$)
Cette procédure envoie une ligne dans l'objet LIST des résultats, comme ceci:
Citation :

Taux=34
Date=11/01/2013
Et la valeur de COUNT(numero_du_LIST) donne le nombre de valeurs retournées. On obtient ainsi des résultats "nommés" qu'il est facile d'exploiter.

Les 3 phases sont:

1. initialiser le système de script
Code:

dim f$ : f$ = "C:\Program files\Panoramic Editor\Panoramic_64.exe"
InitializePanoramicScript(f$)
...ou...
res% = dll_call1("InitializePanoramicScript",adr(f$))
Dès cet instant, le système est prêt à exécuter - un script par défaut est disponible. Comme exécutable, j'ai choisi le Panoramic.exe que Jack avait mis à disposition brièvement lors du début de son appel pour les beta-testeurs, mais toute version de Panoramic.exe fait l'affaire, à condition d'être au moins de la version qui gère les procédures.

2. fournir le script à exécuter en Panoramic
Ceci peut être fait de deux manières:
2.1. un script dans une chaîne de caractères
Code:
s$ = "... mon script ici..."
LoadPanoramicScriptFromString(s$)
...ou...
res% = dll_call1("LoadPanoramicScriptFromString",adr(s$))
2.2. un script dans un mémo
Code:
memo 10 : ' construire le script dans ce mémo
LoadPanoramicScriptFromMemo(10)
...ou...
res% = dll_call1("LoadPanoramicScriptFromMemo",handle(10))
Dans les deux cas, cela met simplement le script dans une mémoire dans la DLL.

3. exécuter le script
Code:
dir$ = ".\"
list 31 : hide 31 : ' recevoir les résultats ici
ExecutePanoramicScript(1,dir$,31)
...ou...
res% = dll_call3("ExecutePanoramicScript",1,adr(dir$),handle(31))
Le premier paramètre est le mode opératoire. 1 signifie "attendre la fin de l'exécution du script pour continuer. Ceci est obligatoire si l'on veut récupérer des résultats. 0 signifie ne pas attendre, mais on ne peut alors pas retourner des résultats. Le paramètre dir$ donne le répertoire dans lequelle le script doit être exécuté. ".\" signifie "dossier par défaut".

Et voici un petit programme de démo:
Code:
' test_PanoramicScript.bas

label init, str, mem, exec

dim res%, s$
dim f$ : f$ = "C:\Program files\Panoramic Editor\Panoramic_64.exe"

KGF_initialize("KGF.dll")

button 1 : top 1,10 : left 1,10 : caption 1,"Initialze"
  on_click 1,init

button 2 : top 2,40 : left 2,10 : caption 2,"String"
  on_click 2,str

button 3 : top 3,70 : left 3,10 : caption 3,"Memo"
  on_click 3,mem

button 4 : top 4,100 : left 4,10 : caption 4,"Exécute"
  on_click 4,exec


edit 12 : top 12,40 : left 12,150 : width 12,400

memo 13 : top 13,70 : left 13,150 : width 13,400
  height 13,350 : bar_both 13
 
memo 21 : top 21,130 : left 21,10 : width 21,130

list 31 : top 31,230 : left 31,10 : width 31,130 : height 31,200

end

init:
  InitializePanoramicScript(f$)
  item_add 21,"Initialize: "+str$(InitializePanoramicScript)
  return
 
str:
  s$ = trim$(text$(12))
  LoadPanoramicScriptFromString(s$)
  item_add 21,"Load string: "+str$(LoadPanoramicScriptFromString)
  return
 
mem:
  LoadPanoramicScriptFromMemo(13)
  item_add 21,"Load memo: "+str$(LoadPanoramicScriptFromMemo)
  return
 
exec:
  s$ = ".\"
  ExecutePanoramicScript(1,s$,31)
  item_add 21,"Execute: "+str$(ExecutePanoramicScript)
  message "Le script a retourné "+str$(count(31))+" valeurs."
  return
 
#INCLUDE "KGF_SUB.bas"

Il faut télécharger KGF.dll et KGF_SUB.bas !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 16:20

Et un autre pas en avant: il y a les mêmes fonctions maintenant avec AutoIt ! Prenez le post précédent dans sa totalité, remplaces ...Panoramic... par ...AutoIt... - c'est tout ! Il faut faire attention à choisir le bon chemin vers l'exécutable de AutoIt, pour la fonction InitializeAutoItScript - chez moi, c'est:
Code:
dim f$ : f$ = "C:\Program files\AutoIt3\AutoIt3.exe"

Télécharger:
KGF.dll
KGF_SUB.bas
demo_KGF_SUB.bas

Un programme Panoramic peut maintenant utiliser des scripts en Panoramic et en AutoIt !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 17:16

AutoIt des nei - ges, mon coeur amoureux....
Bon je traduis:
Spoiler:
 
Je ne sortirais pas de mon programme maintenant, qui est trop prenant et compliqué. J'empile les choses à voir pour plus tard.
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 17:51

J'ai traduit tout ça également en Lazarus/FreePascal, et ça marche donc également en environnement 64 bits, lorsque Panoramic sera prêt pour cela.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 18:19

En parlant de Lazarus, je sais que tu as publié quelque chose là dessus, mais je ne vois pas où.
J'ai téléchargé CodeTyphon, 500 Mo, mais je n'arrive pas à l'installer. Il ne trouve pas des fichiers qui sont pourtant présent dans le pack, et ça concerne aussi Lazarus.
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 20:13

Je parle de Lazarus ici (deuxième post).

CodeTyphon ? Mon pauvre ! C'est GIGANTESQUE ! plus de deux heures de compilation à l'installation ! Et, malgré l'appel au forum de soutien, impossible d'installer le complément de cross-compilation de win32 vers win64.

CodeTyphon contient bien Lazarus. Personnellement, j'utilise Lazarus seul. C'est un IDE complet et riche, très proche de celui de Delphi. Le langage sous-jacent est FreePascal (contenu dans la distribution de Lazarus). Et l'installation du module de cross-compilation s'est faite sans problème, et tout est opérationnel.

Si je peux te donner un conseil: laisse tomber l'usine à gaz de CodeTyphon et passe à Lazarus. Le lien est ici.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 21:12

Citation :
Mon pauvre !
Oui, c'est mon problème! Smile

J'ai retiré tout ce qui concernait CodeTyphon, j'avais pas encore pris le temps de le faire.
J'ai regardé ton lien sur Lazarus. Je suis assez perplexe. Je ne vois rien en français, et la traduction traduit aussi les codes. Je ne vois rien concernant les objets comme on les connait en Panoramic. Je ne sais pas si cela m'apportera quelque chose de plus que Delphi. Quant à la compilation avec Delphi en dehors de l'éditeur, cela ne va pas trop bien. Si je ne me sers pas de Delphi en premier, j'ai pas le fichier exe.

Quel avantage il y a en plus que Delphi pour Lazarus? Le code est-il plus simple?
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 21:44

Lazarus est basé sur FreePascal, qui est très très proche du code Delphi. Mais surtout, il est portable pratiquement partout (Windows 32/64, diverses version Unix, Android, Palm, Symbian, ... et j'en oublie. Avec le même code source ! Rien que ça, c'est un argument important. Delphi 6 est limité à Win32, c'est tout. Même pas Win64...

Les objets sont quasiment la copie conforme de ce qui se fait en Delphi. L'IDE est quasiment identique. Et je l'ai installé en français sans problème. Voici par exemple la documentation Wiki en français. Version française du logiciel ici, et pour ma part, je l'ai pris ici sur la première ligne. Je n'ai eu aucun problème d'avoir la langue française.

En cas de problème: dans le dossier C:\Lazarus\langages\, il y a un fichier lazarusidr.fr.po qui est la traduction française, et dans le dossier C:\Lazarus\, il y a localize.bat qui permet de choisir et installer le langage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 21:48

@ Cosmos,

Citation :
Citation:
Mon pauvre !
Oui, c'est mon problème!

Si cela peut te consoler, c' est le mien aussi ! Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

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

MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 22:24

Perso, pas le temps, je laisse passer ce sujet très intéressant aussi faute de temps, mais ça à l'air génial Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 23:01

Citation :
Lazarus est basé sur FreePascal, qui est très très proche du code Delphi.
Il n'y a pas lieu de téléchargé FreePascal je pense.
Et en ligne de commande, ça marche aussi?
Si oui, en plus facile, ou le contraire?
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 23:22

FreePascal marche aussi en mode commande. Il faut alors lancer le compilateur, puis faire MAKE pour linker... Les options sont complexes et ce n'est réalisable qu'à condition de construire des fichiers de commande pour pouvoir spécifier tous les éléments. Et dans ce cas, il faut créer tous les objets visuels directement en Pascal, ce qui n'est pas simple.

Lazarus est en fait la couche IDE qui permet de constituer visuellement l'image de l'écran, en plaçant tous les objets dans la form, et en indiquant ses principaux attributs, y compris d'ailleurs les routines évènement. Et on a en parallèle une fenêtre de code dans laquelle le code évolue automatiquement, au fur et à mesure qu'on modifie l'aspect visuel, et dans laquelle on peut apporter ses modifications ou ajouts. Sur ce plan, c'est identique à Delphi.

Il y a une fonction dans le menu "Projet" qui est "Options du projet" qui est hyper importante, et il convient de bien étudier cela, en particulier les sus-rubriques "Chemins", "Génération de code" et "Edition des liens". Je partagerai volontiers mon expérience encore limitée.

FreePascal a également in IDE qui lui est propre, mais il n'est guère plus qu'un éditeur de code amélioré. Lazarus est un vrai IDE complètement intégré avec possibilité de debug et de génération d'exécutable. Tu peux d'ailleurs créer toutes sortes de projets: une application visuelle, un programme en mode console, une DLL, un programme non interactif, des programmes spécifiques pour les tests...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Sam 12 Jan 2013 - 23:29

Merci bien. Je vais analyser cela, et faire mon choix.
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: Nouveauté: des scripts en Panoramic !   Mer 16 Jan 2013 - 23:27

Sur MyDrive, j'ai créé un nouveau dossier: Lazarus\.

Dans ce dossier, il y pour le moment, un seul sous-dossier: Lazarus\scripting\.

Ce dossier contient deux projets complete Lazarus:
- FPC_KGF.lpi - projet pour la dll LPG_KGF.dll
- scripting_demo.lpi - projet pour le programme scripting_demo.exe

La DLL et l'EXE sont fournis également en binaire, pour ceux qui n'ont pas Lazarus.

Le programme scripting_demo.exe, lancé dans le même dossier que FPC_KGF.dll, permet de montrer les possibilités de script Panoramit ET script AutoIt, à partir d'un programme externe. Dans ce cas, c'est un programme Lazarus, mais cela pourrait être un programme Delphi ou un programme Panoramic. Le travail est effectué par des fonctions placées dans FPC_KGF.dll. Il s'agit des mêmes fonctions que celles placées dans KGF.dll, juste isolées et converties en Lazarus, mais fonctionnellement identiques.

Il t a aussi test_AutoItScript.bas et test_PanoramicScript.bas. Ces modules sont des programmes Panoramic montrant chacun une des possibilités de script, en utilisant KGF.dll telle qu'elle est publiée dans de dossier DLLs\. Mais on peut également remplacer KGF.dll par FPC_KGF.dll dans la commande DLL_ON de ces deux programmes, et cela fonctionnera de la même manière avec la DLL en Lazarus.

Il y a également des fichiers script_Panoramic.bas et script_AutoIt.bas qui sont des exemples de scripts possibles. Il suffit de copier/coller leur contenu dans le mémo correspondant pour avoir une démo de script avec ces deux langages.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Nouveauté: des scripts en Panoramic !   

Revenir en haut Aller en bas
 
Nouveauté: des scripts en Panoramic !
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» EDI réalisé entièrement en Panoramic
» EDI réalisé entièrement en Panoramic
» pas un panoramic mais utilitaires delphi.
» JS, jQuery, conflit entre plusieurs scripts, serait-ce possible
» Programmes Panoramic en ligne de commande

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: