Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Nouveauté: des scripts en Panoramic ! | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Nouveauté: des scripts en Panoramic ! Ven 11 Jan 2013 - 17: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 PanoramicCeci 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 ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 13: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 ! | |
| | | Invité Invité
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 14:16 | |
| AutoIt des nei - ges, mon coeur amoureux.... Bon je traduis: - Spoiler:
- Citation :
- Étoile des neiges
Mon coeur amoureux S'est pris au piège De tes grands yeux Je te donne en gage Cette croix d'argent Et de t'aimer toute ma vie Je fais serment.
Je ne sortirais pas de mon programme maintenant, qui est trop prenant et compliqué. J'empile les choses à voir pour plus tard. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 14: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. | |
| | | Invité Invité
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 15: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. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 17: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. | |
| | | Invité Invité
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 18:12 | |
| - Citation :
- Mon pauvre !
Oui, c'est mon problème! 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? |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 18: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. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 18:48 | |
| @ Cosmos, - Citation :
- Citation:
Mon pauvre ! Oui, c'est mon problème! Si cela peut te consoler, c' est le mien aussi ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 19:24 | |
| Perso, pas le temps, je laisse passer ce sujet très intéressant aussi faute de temps, mais ça à l'air génial | |
| | | Invité Invité
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 20: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? |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 20: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... | |
| | | Invité Invité
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Sam 12 Jan 2013 - 20:29 | |
| Merci bien. Je vais analyser cela, et faire mon choix. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouveauté: des scripts en Panoramic ! Mer 16 Jan 2013 - 20: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. | |
| | | Contenu sponsorisé
| Sujet: Re: Nouveauté: des scripts en Panoramic ! | |
| |
| | | | Nouveauté: des scripts en Panoramic ! | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |