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
» Détection connexion internet
par JL35 Aujourd'hui à 18:39

» Le parcours du cavalier sur un échiquier 8 x 8
par pascal10000 Hier à 13:26

» Casse-tête : Echanger les positions des cavaliers
par papydall Sam 22 Juil 2017 - 19:42

» Compilateur FBPano
par jean_debord Sam 22 Juil 2017 - 10:54

» demande pour recuperer un text speciale
par pascal10000 Ven 21 Juil 2017 - 22:04

» KGF_dll - nouvelles versions
par Klaus Ven 21 Juil 2017 - 14:29

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
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 : 7930
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 : 5841
Age : 44
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
» [scripts] Lecteur MP3

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: