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 |
|
|
| Lanceur pour l'éditeur Panoramic | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: Lanceur pour l'éditeur Panoramic Jeu 14 Nov 2013 - 23:41 | |
| Voici un petit programme écrit au AutoIt qui a seulement pour but de remplacer le lancement de notre éditeur, et provoquer parfois des plantage de celui-ci. Ce programme ne fait aucun mal à l'éditeur Panoramic. Il n'agit qu'avec des clics pour forcer le focus, et des commandes de touches comme <CTRL><a> pour tout sélectionner, <ALT> et les touches du menu pour agir. Une chose , pour ne pas se perdre avec l'emplacement du curseur, je me sers d'un signet: <CTRL> et 0 pour connaitre la position du curseur, et remettre celui-ci après sélection totale, sinon, on reste en bas du programme. De plus il faut créer un dossier à la racine "C", et nommé "C:\PANORAMIC-INIT\", car j'ai besoin d'information: - le chemin complet de l'éditeur Panoramic, le programme recherche Panoramic, ou l'ouvre si ce n'est pas le cas. Il suffira de regarder le contenu du zip pour comprendre. CE programme a été fait en partie avec ce que j'avais publié: Plugiciel pour Panoramic, mais celui-ci a parfois des problèmes, et c'était bien dommage. Ici ce n'est plus le cas, mais j'ai ajouté une sauvegarde des styles que l'on doit régler à l'ouverture de Panormic. Pour ce faire j'ai repris le programme qui avait été fait. Il s'appelle ici: Sauvegarde_style.bas. Vous le lancez, et répondez à tous les styles, et cela est sauvegardé dans PANORAMIC-INIT En plus du programme, il faut faire un exe du lanceur qui remplace le RUN de Panoramic. Celui-ci est inclut dans le zip, mais il ne faut pas perdre le fichier .bas, car à la nouvelle édition de Panoramic, il faut refaire la compilation pour bénéficier des nouvelles fonctions. Je n'ai pas réussi avec AutoIt, d'inclure un bouton dans l'éditeur. Il me semblait avoir réussi une fois, mais là je n'ai pas su. Donc le programme Autoit se trouve au dessus, et il faut laisser un décalage pour avoir accès au bouton. Voir le Fichier : PANORAMIC-INIT.7zAh oui! Il y a deux versions pour AutoIt: pour 32 et 64 bits. J'ai pas pu tester la version 32 bits, j'espère que ça fonctionne. Sur le programme il y a trois boutons: RUN, choix initial et quitter. En fait le 2ème bouton, ne sert pas, vu qu'au démarrage j'ai fait le lien pour que les styles soient enclenchés. Quand au bouton quitter, j'ai fait aussi en sorte que lorsqu'on ferme Panoramic, cela ferme AutoIt. Donc normalement il n'est pas utile. EDIT: J'ai pas pu tester voir si cela fonctionnait bien avec des includes. J'ai envoyé sans y penser.
Dernière édition par cosmos70 le Sam 16 Nov 2013 - 19:38, édité 2 fois |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Ven 15 Nov 2013 - 0:59 | |
| Merci, Cosmos70. J'ai téléchargé et je prendrai le temps de regarder ça. EDIT Les tests sont faits. J'ai adapté Sauvegarde style.bas" pour pouvoir choisir mon éditeur - facile. J'ai remplacé la ligne 37 par - Code:
-
open_dialog 13:filter 13,"Panoramic_editeur|*.exe" : ' PANORAMIC_EDITOR.exe"
et le tour était joué. Mais "Lancer un run_editeur_PANO.au3" pose problème: il n'aime pas du tout mon nom de fichier pour l'éditeur PAnoramic. Voici le contenu de mon Panoramic.ini qui est correct: - Citation :
- C:\Program Files\Panoramic Editor V 0.9.24\PANORAMIC_EDITOR V0.9.25i4.exe
Le programme AutoIt m'affiche un message d'erreur "Cannot open file V0.9.25i4.exe", puis lance la version de l'éditeur qui s"appelle simplement "C:\Program Files\Panoramic Editor V 0.9.24\PANORAMIC_EDITOR.exe". Par contre, si je lance mon éditeur manuellement, puis ensuite seulement "Lancer un run_editeur_PANO.au3", tout se passe bien, et le bouton "Run" fonctionne parfaitement en lançant le programme contenu dans l'onglet actif. Exactement ce que je voulais. Aurais-tu un moyen de faire de sorte que AutoIt reconnaisse le nom de fichier avec un espace dedans ? Si ce n'est pas possible, ce n'est pas grave -déjà comme ça, ça résoud parfaitement mon problème de test de 2 ou plusieurs programmes simulténement, sans conflit. Un grand Merci, Cosmos70 ! Belle inventivité ! | |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Ven 15 Nov 2013 - 5:30 | |
| Merci pour les testes Klaus. Pour ce qui est de filter, tu as raison. Sur mon ancien ordi celà fonctionnait, mais sur celui-ci, même problème, et ta solution fonctionne. Ce programme était fait pour Plugiciel, et je l'ai repris tel-quel.
Ensuite pour les espaces, cela fait plusieurs année que j'évite les dossiers avec les espaces à cause de execute. Je ne savais pas qu'AutoIt avait le même problème. Avant d'aller plus loin dans la recherche, à tu essayé les noms courts?
Maintenant à la lecture de ta réponse, je vois que tu as lancé autoIt par le fichier .au3 . Je sais pour les essais avec le mode 64 bits, tu as téléchargé AutoIt, mais c'est pas le cas de tous le monde. J'ai besoin d'un rapport avec la version exe de 32 bits. Maintenant il peut y avoir une vue mineur par rapport avec au. J'ai fais quelques changements (juste pour la présentation) dans le programme AutoIt.
C'est pas évident, je ne peux pas faire directement la version 32 bits depuis mon ordi 64bits. Il y a un problème de fichier. Donc je reporte sur une clé usb pour la version 32 bits pour faire la compilation d'un xp. Ensuite je reprends la clé pour reprendre le programme. Mais pour faire un zip, je ne peux pas à cause de droits, faire un zip, directement en c:\PANORAMIC-INIT: Pour cela j'ai installé il y a quelque temps un profil administrateur sur mon W7. Je suis donc obligé de changer d'utilisateur et prendre administrateur, pour faire la compile. Ensuite je me suis aperçu que le zip dans ma session normal, n'était pas visible. Il a fallu que je retourne dans mon administration pour mettre le zip dans le dossier PANORAMIC-INIT pour enfin pouvoir le lire et l'envoyé. Avant de changer, j'aimerai connaitre le résultat. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Ven 15 Nov 2013 - 8:59 | |
| Je suis sous XP SP3 32 bits. Et avec "Lancer un run_editeur_x86.au3", j'ai exactement mem^meme comportement qu'avec le au3. Ce qui paraît normal. | |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Ven 15 Nov 2013 - 12:47 | |
| Bonjour J'ai pas eu le temps de regarder quoi que ce soit. - Citation :
- Aurais-tu un moyen de faire de sorte que AutoIt reconnaisse le nom de fichier avec un espace dedans ?
As-tu fais l'essai avec des noms courts? Sinon je regarderais. Une chose, j'ai fais un copie-coller pour que chain intègre les includes dans le code, mais j'ai été pris ailleurs, et je n'ai pas testé. Je ne peux pas le faire maintenant, et je vais bientôt partir. Si quelqu'un peu faire l'essai ou mettre au point cette partie du code si cela ne marche pas. Autrement je regarderai lorsque j'aurai le temps. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Ven 15 Nov 2013 - 13:00 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Ven 15 Nov 2013 - 23:22 | |
| J'ai testé avec un #INCLUDE, et il y a un problème. Mon programme de test est celui-ci: - Code:
-
width 0,800
xScrollBar(10,10,200,0,0,0,10,300) xTrackBar(40,10,200,0,0,0,10,300) xProgressBar(70,10,200,0,0,0,10,300) xSpin(100,10,200,0,3,7)
xGrid(10,300,400,150,0,0,0,0,0) xList(170,300,400,150,0)
xForm(300,400,0,0,0,"Test")
end
#INCLUDE "KGF_OBJ.bas"
et KGF_OBJ.bas (dans le même dossier que le source de mon programme): - Code:
-
' KGF_OBJ.bas
' Ce fichier implémente la création normalisée d'objets, ' visuels ou non Les objets visuels sont inclus ici pour ' être intégrés dans la gestion automatisée des numéros d'objets. ' Il n'y a rien d'autre à insérer dans le programme.
' ############# ici, le #INCLUDE KGF_OBJ.bas contenant tout ce qui suit ######### ' =============================================================================== ' interface de procédures autour de KGF.dll ' Auteur: Klaus ' ' Objets visuels gérés: ' alpha edit button combo container container_option ' memo list check image scene2d scene3d ' scroll_bat track_bar progress_bar spin ' sub_menu grid option list ' form ' ' Objets non visuels gérés: ' Main_Menu Sound Movie Open_Dialog Save_Dialog ' Dlist Timer Image
' =============== dipatching des fonctions ==================================== message "KGF: on ne peut pas executer ce module directement !" terminate
' =============== objets visuels =============================================
' paramètres: (top,left,width,height,caption) sub xContainer(t%,l%,w%,h%,c$) if variable("no%")=0 then dim no% no% = no% + 1 : container no% top no%,t% : left no%,l% : width no%,w% : height no%,h% caption no%,c$ end_sub
' paramètres: (top,left,width,height,parent,caption) sub xContainer_Option(t%,l%,w%,h%,p%,c$) if variable("no%")=0 then dim no% no% = no% + 1 : container_option no% top no%,t% : left no%,l% : width no%,w% : height no%,h% caption no%,c$ if p%>0 then parent no%,p% end_sub
' paramètres: (top,left,parent,fontsize,caption) sub xAlpha(t%,l%,p%,s%,s$) if variable("no%")=0 then dim no% no% = no% + 1 : alpha no% : caption no%,s$ font_size no%,s% top no%,t% : left no%,l% if p%>0 then parent no%,p% end_sub
' paramètres: (top,left,width,parent,inactive) sub xEdit(t%,l%,w%,p%,a%) if variable("no%")=0 then dim no% no% = no% + 1 : edit no% top no%,t% : left no%,l% : width no%,w% if p%>0 then parent no%,p% if a%=1 then inactive no% end_sub
' paramètres: (top,left,width,parent,inactive,mask,userset) ' mask est un masque de saisie ' userset est un jeu de caractères donné par l'utilisateur. ' Les caractères suivants représentent des jeux de caractères spéciaux: ' 9 = chiffre 0...9 ' A = lettre majuscule ou espace ' a = lettre minuscule ou espace ' $ = lettre minuscule ou majuscule ou espace ' X = code hexadécimal en majuscules ' x = code hexadécimal en minuscules ' * = tout caractère ' U = contenu du paramètre userset ' tous les autres caractères sont imposés tels quels à leur place ' Exemples: ' numéro de sécurité sociale: 9.99.99.999.999.99 ' Nom propre: A$$$$$$$ ' Numéro de téléphone: 09U99U99U99U99 avec userset = " ." sub xEditMask(t%,l%,w%,p%,a%,m$,u$) if m$<>"" : ' au premier appel, création de tout ce qu'il faut if variable("mask_list%")=0 dim mask_list%(3), mask_temp$, mask_n% dim mask_c$, mask_ci%, mask_set$ dim mask_i%, mask_m$, mask_s$ dim mask_codes$ : mask_codes$ = "9Aa$Xx*U" dim mask_masks$(7) mask_masks$(1) = "01234567890" mask_masks$(2) = "ABCDEFGHIJKLMNOPQRSTUVWXYZ " mask_masks$(3) = "abcdefghijklmnopqrstuvwxyz " mask_masks$(4) = mask_masks$(2) + mask_masks$(3) mask_masks$(5) = mask_masks$(1) + "ABCDEF" mask_masks$(6) = mask_masks$(1) + "abcdef" mask_masks$(7) = u$ no% = no% + 1 : dlist no% : mask_list%(1) = no% : ' liste des numéros d'objet no% = no% + 1 : dlist no% : mask_list%(2) = no% : ' liste des masques no% = no% + 1 : dlist no% : mask_list%(3) = no% : ' liste des valeurs anciennes end_if if label("mask_change")=0 then label mask_change, mask_change_1 end_if : ' ici, on a fini de créer tout ce qu'il faut if variable("no%")=0 then dim no% no% = no% + 1 : edit no% top no%,t% : left no%,l% : width no%,w% : ' créer l'objet Panoramic if p%>0 then parent no%,p% : ' autre parent que form 0 ? if a%=1 then inactive no% : ' le EDIT doit être inactif au début ? if m$<>"" : ' si un filtre est demandé, alors on_change no%,mask_change : ' on utilise l'évènement On_CHANGE item_add mask_list%(1),str$(no%) : ' on ajoute le numéro d'objet dans une 1ère liste item_add mask_list%(2),m$ : ' on ajoute le filtre dans une 2ème liste item_add mask_list%(3),"" end_if : ' fin du traitement du filtre end_sub mask_change: : ' évènement ON_CHANGE sur EDITs maskqués mask_temp$ = str$(number_change) : ' prendre le numéro de l'objet for mask_n%=1 to count(mask_list%(1)) : ' chercher cet objet dans la liste ' mask_s$ = item_read$(mask_list%(1),mask_n%) if mask_temp$=mask_s$ then exit_for : ' est-ce que l'objet est trouvé ? next mask_n% : ' fin de recherche mask_temp$ = text$(number_change) : ' prendre le texte du EDIT if mask_temp$="" : ' si le EDIT est vide: item_delete mask_list%(3),mask_n% : ' alors vider la ligne de la 3ème liste item_insert mask_list%(3),mask_n%,"" return : ' on a fini end_if mask_s$ = item_read$(mask_list%(2),mask_n%) : ' prendre le masque for mask_i%=1 to len(mask_temp$) : ' pour tous les caractères du EDIT: if mask_i%>len(mask_s$) mask_s$ = item_read$(mask_list%(3),mask_n%) : ' alors reprendre l'état précédent off_change number_change : ' désactiver ON_CHANGE text number_change,item_read$(mask_list%(3),mask_n%) : ' remplacer le contenu de l'EDIT caret_position number_change,mask_i%-1 : ' restaurer la position du curseur on_change number_change,mask_change : ' réactiver le ON_CHANGE return end_if mask_c$ = mid$(mask_s$,mask_i%,1) : ' prendre le caractère du masque if instr(mask_codes$,mask_c$)=0 if mid$(mask_temp$,mask_i%,1)<>mask_c$ : ' pas le bon caractère imposé ? mask_s$ = item_read$(mask_list%(3),mask_n%) : ' alors reprendre l'état précédent off_change number_change : ' désactiver ON_CHANGE text number_change,item_read$(mask_list%(3),mask_n%) : ' remplacer le contenu de l'EDIT caret_position number_change,mask_i%-1 : ' restaurer la position du curseur on_change number_change,mask_change : ' réactiver le ON_CHANGE return end_if goto mask_change_1 end_if if mask_c$<>"*" mask_set$ = mask_masks$(instr(mask_codes$,mask_c$)) : ' prendre le bon jeu de caractères if instr(mask_set$,mid$(mask_temp$,mask_i%,1))=0 : ' est-ce que le car n'est pas dans le jeu ? mask_s$ = item_read$(mask_list%(3),mask_n%) : ' alors reprendre l'état précédent off_change number_change : ' désactiver ON_CHANGE text number_change,item_read$(mask_list%(3),mask_n%) : ' remplacer le contenu de l'EDIT caret_position number_change,mask_i%-1 : ' restaurer la position du curseur on_change number_change,mask_change : ' réactiver le ON_CHANGE return end_if end_if mask_change_1: next mask_i% : ' fin de la boucle sur le contenu de l'EDIT item_delete mask_list%(3),mask_n% : ' ici, tous les caractères sont valides, item_insert mask_list%(3),mask_n%,mask_temp$ : ' donc on sauvegarde le contenu de l'EDIT return : ' ouf !
' paramètres: (top,left,width,parent,inactive,filtre) sub xEditFilter(t%,l%,w%,p%,a%,f$) if f$<>"" : ' au premier appel, création de tout ce qu'il faut if variable("filter_list%")=0 dim filter_list%(3), filter_temp$, filter_n% dim filter_i%, filter_f$, filter_s$ no% = no% + 1 : dlist no% : filter_list%(1) = no% : ' liste des numéros d'objet no% = no% + 1 : dlist no% : filter_list%(2) = no% : ' liste des filtres no% = no% + 1 : dlist no% : filter_list%(3) = no% : ' liste des valeurs anciennes end_if if label("filter_change")=0 then label filter_change end_if : ' ici, on a fini de créer tout ce qu'il faut if variable("no%")=0 then dim no% no% = no% + 1 : edit no% top no%,t% : left no%,l% : width no%,w% : ' créer l'objet Panoramic if p%>0 then parent no%,p% : ' autre parent que form 0 ? if a%=1 then inactive no% : ' le EDIT doit être inactif au début ? if f$<>"" : ' si un filtre est demandé, alors on_change no%,filter_change : ' on utilise l'évènement On_CHANGE item_add filter_list%(1),str$(no%) : ' on ajoute le numéro d'objet dans une 1ère liste item_add filter_list%(2),f$ : ' on ajoute le filtre dans une 2ème liste item_add filter_list%(3),"" end_if : ' fin du traitement du filtre end_sub filter_change: : ' évènement ON_CHANGE sur EDITs filtrés filter_temp$ = str$(number_change) : ' prendre le numéro de l'objet for filter_n%=1 to count(filter_list%(1)) : ' chercher cet objet dans la liste ' filter_s$ = item_read$(filter_list%(1),filter_n%) if filter_temp$=filter_s$ then exit_for : ' est-ce que l'objet est trouvé ? next filter_n% : ' fin de recherche filter_temp$ = trim$(text$(number_change)) : ' prendre le texte du EDIT if filter_temp$="" : ' si le EDIT est vide: item_delete filter_list%(3),filter_n% : ' alors vider la ligne de la 3ème liste item_insert filter_list%(3),"" return : ' on a fini end_if filter_s$ = item_read$(filter_list%(2),filter_n%) : ' prendre le filtre for filter_i%=1 to len(filter_temp$) : ' pour tous les caractères du EDIT: if instr(filter_s$,mid$(filter_temp$,filter_i%,1))=0 : ' est-ce que le car n'est pas dans le filtre ? filter_s$ = item_read$(filter_list%(3),filter_n%) : ' alors reprendre l'état précédent off_change number_change : ' désactiver ON_CHANGE text number_change,item_read$(filter_list%(3),filter_n%) : ' remplacer le contenu de l'EDIT caret_position number_change,filter_i%-1 : ' restaurer la position du curseur on_change number_change,filter_change : ' réactiver le ON_CHANGE return : ' et sortir end_if next filter_i% : ' fin de la boucle sur le contenu de l'EDIT item_delete filter_list%(3),filter_n% : ' ici, tous les caractères sont valides, item_insert filter_list%(3),filter_n%,filter_temp$ : ' donc on sauvegarde le contenu de l'EDIT return : ' ouf !
' paramètres: (top,left,width,parent,caption) sub xButton(t%,l%,w%,p%,c$) if variable("no%")=0 then dim no% no% = no% + 1 : button no% top no%,t% : left no%,l% : width no%,w% if p%>0 then parent no%,p% caption no%,c$ end_sub
' paramètres: (top,left,width,parent,caption) sub xOption(t%,l%,w%,p%,c$) if variable("no%")=0 then dim no% no% = no% + 1 : option no% top no%,t% : left no%,l% : width no%,w% if p%>0 then parent no%,p% caption no%,c$ end_sub
' paramètres: (top,left,parent) sub xCombo(t%,l%,p%) if variable("no%")=0 then dim no% no% = no% + 1 : combo no% top no%,t% : left no%,l% if p%>0 then parent no%,p% end_sub
' paramètres: (top,left,width,height,parent,bar_horizontal,bar_vertical) sub xMemo(t%,l%,w%,h%,p%,bh%,bv%) if variable("no%")=0 then dim no% no% = no% + 1 : memo no% top no%,t% : left no%,l% : width no%,w% : height no%,h% if p%>0 then parent no%,p% if bh%>0 then bar_horizontal no% if bv%>0 then bar_vertical no% end_sub ' paramètres: (top,left,width,height,parent) sub xList(t%,l%,w%,h%,p%) if variable("no%")=0 then dim no% no% = no% + 1 : list no% top no%,t% : left no%,l% : width no%,w% : height no%,h% if p%>0 then parent no%,p% end_sub
' paramètres: (top,left,width,parent,caption) sub xCheck(t%,l%,w%,p%,c$) if variable("no%")=0 then dim no% no% = no% + 1 : option no% top no%,t% : left no%,l% : width no%,w% if p%>0 then parent no%,p% caption no%,c$ end_sub
' paramètres: (top,left,width,height,parent) sub xPicture(t%,l%,w%,h%,p%) if variable("no%")=0 then dim no% no% = no% + 1 : picture no% top no%,t% : left no%,l% : width no%,w% if p%>0 then parent no%,p% end_sub
' paramètres: (top,left,width,height,parent) sub xScene2d(t%,l%,w%,h%,p%) if variable("no%")=0 then dim no% no% = no% + 1 : picture no% top no%,t% : left no%,l% : width no%,w% if p%>0 then parent no%,p% end_sub
' paramètres: (top,left,width,height,parent) sub xScene3d(t%,l%,w%,h%,p%) if variable("no%")=0 then dim no% no% = no% + 1 : picture no% top no%,t% : left no%,l% : width no%,w% if p%>0 then parent no%,p% end_sub
' paramètres: (parent,caption) sub xSub_Menu(p%,c$) if variable("no%")=0 then dim no% no% = no% + 1 : sub_menu no% parent no%,p% caption no%,c$ end_sub
' paramètres: (top,left,width,height,parent,orientation,min,max) ' w%,h%: 0 = défaut ' o%: 0=défaut 1=horizontal 2=vertical ' mn%,mx%: 0 = défaut sub xTrackBar(t%,l%,w%,h%,p%,o%,mn%,mx%) if variable("no%")=0 then dim no% no% = no% + 1 : track_bar no% top no%,t% : left no%,l% if w%>0 then width no%,w% if h%>0 then height no%,h% if p%>0 then parent no%,p% if o%=1 then horizontal no% if o%=2 then vertical no% if mn%<>0 then min no%,mn% if mx%<>0 then max no%,mx% end_sub
' paramètres: (top,left,width,height,parent,orientation,min,max) ' w%,h%: 0 = défaut ' o%: 0=défaut 1=horizontal 2=vertical ' mn%,mx%: 0 = défaut sub xScrollBar(t%,l%,w%,h%,p%,o%,mn%,mx%) if variable("no%")=0 then dim no% no% = no% + 1 : scroll_bar no% top no%,t% : left no%,l% if w%>0 then width no%,w% if h%>0 then height no%,h% if p%>0 then parent no%,p% if o%=1 then horizontal no% if o%=2 then vertical no% if mn%<>0 then min no%,mn% if mx%<>0 then max no%,mx% end_sub
' paramètres: (top,left,width,height,parent,orientation,min,max) ' w%,h%: 0 = défaut ' o%: 0=défaut 1=horizontal 2=vertical ' mn%,mx%: 0 = défaut sub xProgressBar(t%,l%,w%,h%,p%,o%,mn%,mx%) if variable("no%")=0 then dim no% no% = no% + 1 : progress_bar no% top no%,t% : left no%,l% if w%>0 then width no%,w% if h%>0 then height no%,h% if p%>0 then parent no%,p% if o%=1 then horizontal no% if o%=2 then vertical no% if mn%<>0 then min no%,mn% if mx%<>0 then max no%,mx% end_sub
' paramètres: (top,left,width,parent,min,max) ' w% : 0 = défaut ' mn%,mx%: 0 = défaut sub xSpin(t%,l%,w%,p%,mn%,mx%) if variable("no%")=0 then dim no% no% = no% + 1 : spin no% top no%,t% : left no%,l% if p%>0 then parent no%,p% if w%>0 then width no%,w% if mn%<>0 then min no%,mn% if mx%<>0 then max no%,mx% if mn%<>0 then position no%,mn% end_sub
' paramètres: (top,left,width,height,parent,ncol,ncolfix,nrow,nrowfix) ' w%,h%,nc%,ncf%,nr%,nrf%: 0 = defaut sub xGrid(t%,l%,w%,h%,p%,nc%,ncf%,nr%,nrf%) if variable("no%")=0 then dim no% no% = no% + 1 : grid no% top no%,t% : left no%,l% if w%>0 then width no%,w% if h%>0 then height no%,h% if p%>0 then parent no%,p% if nc%>0 then grid_column no%,nc% if ncf%>0 then grid_column_fixed no%,ncf% if nr%>0 then grid_row no%,nr% if nrf%>0 then grid_row_fixed no%,nrf% end_sub
' paramètres: (top,left,width,height,border,caption) ' w%,h%,b%: 0 = défaut sub xForm(t%,l%,w%,h%,b%,c$) if variable("no%")=0 then dim no% no% = no% + 1 : form no% top no%,t% : left no%,l% if w%>0 then width no%,w% if h%>0 then height no%,h% if b%=1 then border_normal,no% if b%=2 then border_small,no% if b%=3 then border_hide,no% caption no%,c$ end_sub
' =============== objets non visuels =========================================
' paramètres: aucun sub xMainMenu() if variable("no%")=0 then dim no% no% = no% + 1 : main_menu no% end_sub
' paramètres: aucun sub xSound() if variable("no%")=0 then dim no% no% = no% + 1 : sound no% end_sub
' paramètres: aucun sub xMovie() if variable("no%")=0 then dim no% no% = no% + 1 : movie no% end_sub
' paramètres: (filter) sub xOpenDialog(f$) if variable("no%")=0 then dim no% no% = no% + 1 : open_dialog no% if f$<>"" then filter no%,f$ end_sub
' paramètres: (filter) sub xSaveDialog(f$) if variable("no%")=0 then dim no% no% = no% + 1 : save_dialog no% if f$<>"" then filter no%,f$ end_sub
' paramètres: aucun sub xDlist() if variable("no%")=0 then dim no% no% = no% + 1 : dlist no% end_sub
' paramètres: (actif,interval) ' a%,i%: 0 = défaut sub xTimer(a%,i%) if variable("no%")=0 then dim no% no% = no% + 1 : timer no% if a%=0 then timer_off no% if i%>0 then timer_interval no%,i% end_sub
' paramètres: aucun sub xImage() if variable("no%")=0 then dim no% no% = no% + 1 : image no% end_sub
En lançant mon petit programme test par l'éditeur, tout marche bien. En le lançant par le lanceur AutoIt, j'ai le message suivant: - Citation :
- (51) OBJECT does not exist (Not created). Line: 26
Tu peux essayer de reproduire cela ? | |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 0:15 | |
| Avant de te répondre, je recopie le lien pour ne pas le perdre: Voir le Fichier : PANORAMIC-INIT.7zJe ne sais pas si c'est le même lien. J'ai repris le programme du loader, et maintenant il doit marché. J'ai mis un programme avec un include, qui lui-même avait un include aussi (programme teste que j'ai retrouvé), et ça fonctionne comme avec l'éditeur. En fait il fallait renommer un dlist. J'ai refait le programme AutoIt, et maintenant je pense qu'il devrait fonctionner avec un espace dans le chemin. Je transforme le nom-long en nom-court. Peux-tu confirmer ?. Apparemment tout fonctionne. Même le programme AutoIt en 32 bits fonctionne chez-moi en 64 bits.
Dernière édition par cosmos70 le Sam 16 Nov 2013 - 19:38, édité 2 fois |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 0:49 | |
| J'ai pris le contenu du 7z du nouveau lien. Maintenant, en lançant "lancer un run_éditeur_PANO.au3", le bon éditeur s'ouvre bien - problème résolu. Mais pas tout, pour autant. Il y a encore un problème, mais il s'annonce différemment: Unable to load file (Line 26) Le pense que c'est lié aux noms des fichiers et chemins. Mais, même si je mets le chemin complet dans la directive #INCLUDE, j'ai le même problème. Voici ma ligne include: - Code:
-
#INCLUDE "C:\Documents and Settings\Klaus\Mes documents\Mes projets Delphi\KGF\KGF_OBJ.bas" Il faut bien voir que lorsqu'on charge un module source dans l'éditeur, celui-ci peut provenir de n'importe quel dossier. Cela n'a aucune importance tant qu'il n'y a pas de #INCLUDE, car tu prends le source complet par ctrl-A / ctrl-C pour le copier ailleurs. Bien. Mais si ce source contient un chemin vers un fichier #INCLUDE, le programme est perdu. Et, comme tu vois ci-dessus, même si je mets le chemin complet en dur, ça plante. Là, il y a encore quelque chose à creuser. D'ailleurs, autre détail: lorsque le lance "lancer un run_éditeur_PANO.au3" en double-cliquant sur son icône, je charge mon source dans l'éditeur, puis je ferme l'éditeur, le programme AutoIt disparaît bien de la mémoire. Mais, si je lance l'éditeur d'abord, ensuite "lancer un run_éditeur_PANO.au3", puis j'arrête l'éditeur, puis je sors du lanceur par le bouton de sortie, celui-ci disparaît de l'écran, mais PAS de la liste des tâches du gestionnaire des tâches. Et il garde ses ressources verrouillées (dossiers, fichiers sourcee etc). Il faut le tuer par le gestionnaire des tâches. | |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 1:44 | |
| Merci pour les testes. Mais un peu de mal de comprendre, d'autant que tes chemins je ne peux pas les adapter. Comme je n'ai pas KGF_OBJ.bas, j'ai modifié le programme mis plus haut pour voir ce que fait le programme. Malheureusement la longueur du message avec les codes, est trop longue pour être publiée, et à cette heure-ci, j'ai pas envie de tout reprendre. J'ai fais une copie de l'ensemble et mis sur le Webdaw. Je verrais demain pour améliorer les choses, si je peux. c'est répose à Klaus ( pas original comme titre) |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 2:00 | |
| Eh bien, prends un autre programme à charger dans l'onglet de l'éditeur, comme celui-ci, par exemple: - Code:
-
' test.bas dim txt$ charger_txt() message txt$ end
#INCLUDE "module1.bas"
Et module1.bas, placé dans le même dossier que le module test.bas: - Code:
-
sub charger_txt() txt$ = "Coucou" end_sub
Si tu mets ces deux modules dans un dossier, différent de celui dans lequel se trouve le programme AutoIt, tu verras que le programme AutoIt a des difficultés pour ouvrir le fichier include. Et ce même si tu mets le chemin complet vers module1.bas dans la ligne #INCLUDE du programme test.bas. | |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 8:24 | |
| Klaus! je n'arrive pas à comprendre car cela n'a pas de logique. Autoit ne fait qu'une chose après avoir ouvert, ou pris le handle de Panoramic: - Code:
-
ControlFocus($hWnd, "", $hSynedit) Send("^+à",0) ; MARQUE LA POSITION DANS L'ECRAN par <CTRL> <SHIFT> '0' (le + signifiant <SHIFT>) ControlClick($hWnd, "", $hSynedit, "left", 20, 100) MouseClick("left", 30, 100, 1, 0) Send("^a!eo") ; ctrl a copier (menu) Il fait un <CTRL>"a" pour tout sélectionner, puis il va dans le menu édition pour faire copier. Ensuite: - Code:
-
Run("C:\Panoramic-Init\lanceur_pour_Panoramic.exe") Il lance le loader panoramic. Et là tu as le programme qui est comme tu le vois dans la ligne : lanceur_pour_Panoramic.exe, qui est l'exécutable de "lanceur_pour_panoramic.bas", et tu as le programme dans le zip. Alors c'est à partir du programme Panoramic que normalement tu dois me répondre. Il est évident que pour un include il faut mettre le chemin complet. Il y a toujours la possibilité de faire quelque chose comme moi. J'ai un programme qui cumul une série de commande de ce type: dans lequel j'ai une liste des includes: Mince l'image a grossi. je ne recommence pas. Je marque dans mon programme: #include |1, et le loader (pas celui-ci) modifie la ligne pour mettre le chemin entier. Bon ce genre de programme je l'ai déjà proposé mais j'ai rarement un retour, et de toute façon je ne peux programmer que pour moi. le programme lanceur_pour_panoramic.bas, je le remets ici: (C'était une copie rapide d'un des mes loader, dans lequel j'ai retiré du code et une adaptation rapide) - Code:
-
' lanceur pour l'éditeur panoramic memo 3:bar_both 3 :hide 3 hide 0 dlist 1 dlist 4 dlist 6 clipboard_paste 3 include() file_save 1,"C:\Panoramic-Init\programme.bas" chain "C:\Panoramic-Init\programme.bas" end ' ============== sub include() dim_local a%,b%,a$,v%,c$,lig_a% ,include% ,c% , n% , n$ if count(3)> 1 b%=0 :' pour numéroter les #include a%=1 repeat a$=item_read$(3,a%) ' je rajoute éventuellement les includes if left$(upper$(trim$(a$)),8)="#INCLUDE" v%=instr(upper$(a$),"#INCLUDE ") :b% = b% + 1 :c$ = mid$(a$, v% + 9 , 80) item_add 4,trim$(a$) item_add 1,"' #" + str$(b%) + " dépilé: " + trim$(a$) include%=1 file_add 6, c$ : lig_a%=a%+1 :' on ajoute le fichier c$
item_insert 3,a%+1,"' ==== FIN du programme #INCLUDE dépilé: "+c$+" #"+str$(b%)+" ====" for c%=1 to count(6) a$=item_read$(6,1) : item_insert 3,lig_a%,a$ : item_delete 6,1:lig_a%=lig_a%+1 next c% else item_add 1,a$ end_if a%=a%+1 until a% > count(3) or scancode=27 end_if item_add 1,"" end_sub Si tu as une solution pour modifier le programme et mettre des chemins relatifs dans les includes, je suis preneur. La seule que je vois est de mettre une copie du programme dans le dossier du programme bas. Là il peut y avoir deux possibilités; soit je mets un lien dans un fichier ini pour Autoit, et recopie le loader dans le dossier du programme (et là cela me parait scabreux, soit le loader sauvegarde programme.bas dans le dossier du programme. Dans les deux cas, il faut connaitre le dossier, donc il faut une astuce pour celui-ci. Si il y avait un <CTRL> "s" à Panoramic, on pourrait s'en servir, mais Jack n'a pas voulu le coder. Donc à chaque fois que l'on veut lancer le programme dans ce sens, il faudra que je clique sur "enregistrer", ce qui me parait plus lourd, et pas nécessairement voulu, surtout pour des testes. Il me faut ta réponse pour continuer. Connaitre ton point de vue. Si tu regardes le programme .bas, tu verras comment je procède, car une fonction chain ne prend pas encore les directives. Là je le répète: AutoIt en aucun cas ne s'occupe des includes ici. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 10:12 | |
| D'accord, Cosmos. J'ai compris ton argument. C'est effectivement le programme en Panoramic qui est en cause, celui qui dépile des #INCLUDE.
Je vais voir ce que je peux y faire, et je te tiens au courant. Je tiens à cet outil, car il résout en effet un problème de test que j'ai assez souvant. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 10:32 | |
| J'ai trouvé. C'était un simple détail à la ligne 22: tu prends le nom du fichier en le limitant à 80 caractères ! Un nom long peut contenir 255 caractères ! J'ai fait comme ceci, et ça passe dans tous les cas: - Code:
-
' lanceur pour l'éditeur panoramic memo 3:bar_both 3 :hide 3 hide 0 dlist 1 dlist 4 dlist 6 clipboard_paste 3 include() file_save 1,"C:\Panoramic-Init\programme.bas" chain "C:\Panoramic-Init\programme.bas" end ' ============== sub include() dim_local a%,b%,a$,v%,c$,lig_a% ,include% ,c% , n% , n$ if count(3)> 1 b%=0 :' pour numéroter les #include a%=1 repeat a$=item_read$(3,a%) ' je rajoute éventuellement les includes if left$(upper$(trim$(a$)),8)="#INCLUDE": ' syntaxe possible ici: #INCLUDE |N°| v%=instr(upper$(a$),"#INCLUDE ") : b% = b% + 1 : c$ = mid$(a$, v% + 9 , len(a$)) item_add 4,trim$(a$) item_add 1,"' #" + str$(b%) + " dépilé: " + trim$(a$) include%=1 file_add 6, c$ : lig_a%=a%+1 :' on ajoute le fichier c$
item_insert 3,a%+1,"' ==== FIN du programme #INCLUDE dépilé: "+c$+" #"+str$(b%)+" ====" for c%=1 to count(6) a$=item_read$(6,1) : item_insert 3,lig_a%,a$ : item_delete 6,1:lig_a%=lig_a%+1 next c% else item_add 1,a$ end_if a%=a%+1 until a% > count(3) or scancode=27 end_if item_add 1,"" end_sub
Un grand MERCI pour cet outil qui me rendra de grands services ! | |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 14:18 | |
| Je suis content pour toi. Effectivement, je procédais ainsi il y a 2/3 ans, alors sauf cas rare, où je sais que le nombre (len()) ne dépassera pas la valeur marqué, aujourd'hui et depuis un bon moment je marque ",len(a$)". C'était un copie/coller, et j'ai pas fait gaffe.
Une chose de faite. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 15:31 | |
| En tout cas, je suis très content de cet outil. Je suis en train de chercher un moyen de l'attacher à l'éditeur de Panoramic... | |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 15:38 | |
| J'ai refait le zip, et mis à jour les deux autres liens, qui est le même que celui-ci Voir le Fichier : PANORAMIC-INIT.7zJe ne sais pas si c'est utile, mais il serait possible de mettre un autre éditeur que Panoramic. Il suffirait de mettre le nom de la fenêtre de celui-ci dans un fichier ini. J'ai supprimé dans AutoIt la séquence de touches au départ, qui validait les choix sauvegardés. Il faut appuyé sur la touche "choix initial" pour le faire. On s'est croisé.
Dernière édition par cosmos70 le Sam 16 Nov 2013 - 19:37, édité 1 fois |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 17:30 | |
| J'ai apporté une modification au lanceur panoramic. Il sauvegarde non seulement le fichier à exécuter, mais il fait une copie de celui-ci avec les n° de lignes devant. Ainsi, si une erreur apparait, il suffit d'ouvrir ce fichier pour voir à quoi la ligne correspond. - Code:
-
' lanceur pour l'éditeur panoramic memo 3:bar_both 3 :top 3,100 hide 0 list 2 list 1 list 4 list 6 clipboard_paste 3 include() file_save 1,"C:\Panoramic-Init\programme.bas" ligne() chain "C:\Panoramic-Init\programme.bas" end ' ============== sub include() dim_local a%,b%,a$,v%,c$,lig_a% ,include% ,c% , n% , n$ if count(3)> 1 b%=0 :' pour numéroter les #include a%=1 repeat a$=item_read$(3,a%) ' je rajoute éventuellement les includes if left$(upper$(trim$(a$)),8)="#INCLUDE" :' syntaxe possible ici: #INCLUDE |N°| v%=instr(upper$(a$),"#INCLUDE ") :b% = b% + 1 :c$ = mid$(a$, v% + 9 , len(a$)) item_add 4,trim$(a$) item_add 1,"' #" + str$(b%) + " dépilé: " + trim$(a$) include%=1 file_add 6, c$ : lig_a%=a%+1 :' on ajoute le fichier c$
item_insert 3,a%+1,"' ==== FIN du programme #INCLUDE dépilé: "+c$+" #"+str$(b%)+" ====" for c%=1 to count(6) a$=item_read$(6,1) : item_insert 3,lig_a%,a$ : item_delete 6,1:lig_a%=lig_a%+1 next c% else item_add 1,a$ end_if a%=a%+1 until a% > count(3) or scancode=27 end_if item_add 1,"" end_sub
sub ligne() dim_local a%,a$ for a% = 1 to count(1) a$ = item_read$(1,a%) item_delete 1,a% item_insert 1,a%,right$(" "+str$(a%),4)+"| "+a$ next a% file_save 1,"C:\Panoramic-Init\LIGNE_programme.bas" end_sub |
| | | Invité Invité
| Sujet: Re: Lanceur pour l'éditeur Panoramic Sam 16 Nov 2013 - 19:36 | |
| Je viens d'apporter des modifications. Dans le fichier zip, le programme lanceur panoramic intègre la sauvegarde suplémentaire avec N° de lignes, pour le cas qu'une erreur interviendrait dans un include. Ensuite j'ai ajouté 2 boutons au programme AutoIt: 1 voir qui affiche le fichier avec les numéros, et un pour caché le contenu du fichier. Voir le Fichier : PANORAMIC-INIT.7zEdit: tous les liens sont à jour.
Dernière édition par cosmos70 le Mer 20 Nov 2013 - 12:20, édité 4 fois |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Lanceur pour l'éditeur Panoramic Dim 17 Nov 2013 - 17:06 | |
| Je m'étais isolé un peu, ces derniers temps, pour résoudre mon problème technique consistant en l'injection d'un bouton dans l'éditeur Panoramic.
Problème résolu, d'ou la nouvelle version V2.53 du 17/11/2013 de KGF.dll.
J'ai posté une application de cette nouveauté dans la rubrique "Vos sources, vos utilitaires à partager".
Je peux maintenant, directement dans l'éditeur, cliquer sur un bouton pour lancer le contenu de l'onglet actuel, à l'aide de ton outil ""C:\Panoramic-Init\lanceur_pour_Panoramic.exe"" qui est super ! | |
| | | Contenu sponsorisé
| Sujet: Re: Lanceur pour l'éditeur Panoramic | |
| |
| | | | Lanceur pour l'éditeur Panoramic | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |