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 |
|
|
| Plugicielle pour Panoramic | |
| | |
Auteur | Message |
---|
Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Ven 13 Avr 2012 - 0:30 | |
| Merci Klaus, je partirais là dessus. Pour l'instant je termine la représentation des lignes pour les erreurs dans les includes. Ce que je ne sais pas encore, c'est comment je vais faire la sortie. Dans un fichier, dans un onglet. Peut-être faut-il pouvoir avoir les deux lectures: celle de la programmation, et celle codée pour Panoramic. Si tu as des noms pour les commandes qui te semblent appopriés, c'est le bien venu. Demain c'est encore une dure journée, donc et merci pour ta participation. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Plugicielle pour Panoramic Ven 13 Avr 2012 - 0:36 | |
| La sortie ? Peut-être dans un mémo séparé, éventuellement avec un bouton "Enregistrer sous..." ? | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Dim 22 Avr 2012 - 20:19 | |
| Retour sur ce programme! Vu les problèmes rencontrés, dont j'ai déjà fait l'écho, après des tas d'essais pour avoir quelque chose de cohérent les problèmes de sauvegarde, et de relecture de fichiers qui devenaient bloqués, j'ai revu toute la structure et la méthode. J'ai décidé de garder la structure d'AutoIt qui est indispensable pour agir sur l'éditeur, et j'ai fait une interface en Panoramic pour le fonctionnement. Du coup, tous les problèmes ont disparu. Plus de problèmes de sauvegarde. Les commandes à venir pourront se faire depuis l'interface de Panoramic. Les commandes que je veux faire, comme des commandes pour les DLL, seront faites en Panoramic. Si un effet manque pour qu'une commande puisse fonctionner, je la ferais en Auto It (dans la mesure que c'est possible). Aujourd'hui je mets une version stable d'Autoit et le programme Panoramic qui va avec. Vous allez penser que cela commence à faire beaucoup: l'éditeur Panoramic, le plugiciel Auto It, le programme Panoramic. Il faudra juste une fois tout mettre dans le même dossier, cliquez sur le plugin. C'est lui qui démarre le reste. À noter une chose: le programme Panoramic a une visibilité de 10 sur 255. J'ai eu des problèmes en mettant à Hide Panoramique, et j'ai laissé une visibilité minimum, vu qu'on ne le voie pas. Vous vous apercevrez de sa présence parfois, lors d'une sélection, une partie de celle-ci semblera non sélectionnée. Cela vient du fait que le complément Panoramic est dessus provisoirement, mais ne doit pas gêner, vu que le focus est rendu à l'éditeur, la commande finie. Une info, ou une parenthèse: J'ai eu quelques soucis ces jours-ci avec Auto It, car si les paramètres sont mals réglés avec les clics de souris (ce qui n'est plus le cas maintenant), il est très difficile d'arriver le programme, vu que la souris va plus vite que le contrôle. Aussi j'ai eu l'idée de faire un programme particulier qui consiste à avoir une fenêtre en arrière-plan prenant tout l'écran, avec un bouton prenant aussi tout l'écran. Un clic sur ce bouton stop le programme. Si je vous en parle, c'est que je viens de faire l'essai pour Panoramic. Si cela vous intéresse, je peux vous mettre ce programme pour stopper un bouclage qui n'arrive pas à arrêter, sauf en passant par le gestionnaire de tâche. Un clic sur le bouton et on tue le programme qui ne répond pas. Bon parle de ce plugin. On peut maintenant lancer un Programme Panoramic avec le bouton Run. Quel intérêt? Le programme n'étant pas lancé par Panoramic, mais par une fonction CHAIN, vous ne risquez plus de bloquer Panoramic, avec une erreur du type je ne sais plus très bien: impossible To load, ou Run impossible (je ne me rappelle plus de l'erreur) et qui fait perdre l'éditeur. En plus de cette façon on peut rajouter des commandes personnelles, ou des raccourcis, et c'est le programme Panoramic joint à Auto It, qui transforme le code. La fonction RUN est complétée par la fonction Contrôle (en bas du plugiciel). Celle-ci permet lors d'une erreur signalée, de retrouver la ligne en cause. Il faut repérer le numéro de ligne, et un exemple: dans un programme avec des includes, erreur ligne 24: une fois cliqué sur ce bouton, un input box demande le numéro de ligne, et vous avez la représentation suivante: On a trois lignes: la ligne précédente avec le chemin, et le nom du fichier, suivie du n° de cette ligne. La ligne demandée, avec également le nom du fichier, est suivie du N° de la ligne, et le contenu. idem pour la ligne suivante. À noter la chose suivante: si vous avez utilisé le bouton RUN, le n° de la ligne est correct. Si vous avez utilisé: exécuter, il peut y avoir une différence si les lignes vides en fin de programme, ne correspondent pas au fichier. Ceci peut être le cas après un retour d'include. Comment on procède? Vous récupérez le fichier zip, et vous mettez tout dans le même dossier: "c:\Panoramic-Init" obligatoire, c'est celui-là qu'AutoIt ira chercher. J'ai fait une icône vite faite pour Auto It. Le programme Panoramic a le nom de "Sauve_form_pour_autoit". Vous ne devez pas changer le caption et le nom du programme. C'est le programme AutoIt qui démarre "Sauve_form_pour_autoit" et Panoramic_Editeur. Ce dernier doit-être fermé, ou alors les onglets vides, car le plugiciel, ne pourraient pas retrouver le chemin des fichiers. Si vous fermez Auto It, ou si celui-ci venait à bloquer, il n'y aurait pas de conséquence pour l'éditeur Panoramic, si ce n'est que les onglets ne sont reconnus que par Auto It, et que si la sauvegarde n'a pas été faite avant, il faudra refaire les sauvegardes pour le programme des onglets modifiés depuis. Vous avez des fichiers de sauvegarde du dernier programme, si vous l'avez lancé avant. Il y a aussi la copie bak que Panoramic fait si c'est dans les paramètres. Je vais enfin pouvoir avancer dans ce qui m'intéresse le plus. Le programme basic est pour l'instant unique, mais j'ai l'intention ensuite de le faire fonctionner comme un include, afin de pouvoir faire des commandes qui ne soient pas enfermées dans le code. J'ai une idée (dans la mesure, où certains d'entre-vous me suivent) pour les déclarations. Vu que l'interface Panoramic va servir à faire les commandes, et que ceux qui ont un intérêt ou une volonté d'en faire, c'est par exemple dans une variable, la définir ainsi: une lettre pour l'auteur (pour moi:"C." Klaus, s'il veut "K"..., une lettre préétablie pour la commande qui entre dans tout le programme de cette commande, suivi de l'espace "_", ensuite c'est comme on veut. J'y ai mis trois petit programmes pour tester les includes, et la recherche de ligne. (modifiez les chemins pour les includes! (nom complet) et pas de variable!) C'est en choisissant sur "Teste_Include.bas" comme programme de démarrage. PENSEZ A FAIRE UN EXECUTABLE DU PROGRAMME PANORAMIC. (AutoIt recherche un exécutable, pas un fichier bas) Voir le Fichier : 1.7z Je vais enfin pouvoir jeter un oeil sur vos programmes. |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 10:03 | |
| Wouah bravo pour les explications. Je testerais ce soir avant de commencer à jouer ... Je te fais un retour juste après. PS: puisque tu automatises, tu devrais inclure le programme de "remise en forme automatique" dans les options, je pense que je l'utiliserais plus si elle était intégrée à l'éditeur personnellement | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 10:41 | |
| Salut Cosmos, - Citation :
- Comment on procède? Vous récupérez le fichier zip, et vous mettez tout dans le même dossier: "c:\Panoramic-Init" obligatoire, c'est celui-là qu'AutoIt ira chercher.
Peux-tu préciser, car sous XP les caractères : \ ne sont pas autorisés pour nommer un dossier. J'ai déziper dans un dossier que j'ai nommé Plug en attendant, j'y ai ajouté une copie de panoramic.exe. çà marche (sauf pour la sauvegarde à cause du nom de dossier) et je vois que tu as gagné en rapidité d'exécution. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 11:06 | |
| Je suis sous XP et j'utilise le \ sans problème. Exemple, dans mon programme d'archivage: - Code:
-
dim crypto_dll$ : crypto_dll$ = "C:\temp\crypto.dll" Si tu rencontres un problème, ça doit venir d'ailleurs - répertoire inexistant, droits d'accès inappropriés, etc. | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 11:51 | |
| Bonjour, Merci pour vous pencher sur ce programme. @Jean-Claude: Je suis sous XP. Je suis surpris par tes problèmes, car sous XP et même les autres OS, la séparation des dossiers se fait par "\". Donc le problème vient d'ailleurs.
Normalement ce fichier devrait déjà être créé, vu que tu t'es servi du programme et que tu m'as déjà fait des retours. C'est le premier fichier Panoramic, celui dans lequel tu sauvegardes les choix de Panoramic sur les couleurs et autres, qui créent ce dossier. Donc il devrait exister.
Maintenant les différentes sauvegardes et récupérations des fichiers sont dans ce dossier: "C:\Panoramic_Init" Si au lancement, les choix sont récupérés, et cela se voit par les flaches sur le menu de Panoramic pour imposer les choix au démarrage, je ne vois pas le problème.
Le seul programme qui peut-être mis dans un autre dossier, est Auto It. Il ne se cherche pas (d'ailleurs chez moi, il n'est pas là, vu que j'ai un dossier différent, après l'envoi sur le forum, pour garder l'original du fichier source, et que je repars sur un nouveau dossier). Par contre les chemins sont imposés avec le nom du programme, et des fichiers. C'est déjà assez compliqué comme cela, et je suis parti sur ce principe. Pour dézipper: le zip étant ouvert, tu ne fais aucune sélection dans la fenêtre, et tu extrais directement dans "C:\Panoramic-Init" Et normalement cela doit fonctionner.
@Jicehel Mon très gros problème, est le temps, et la fatigue de la journée. J'y ai pensé. Cela se fera surement dans un second temps. Par contre la prochaine fois, je mettrais un bouton, pour récupérer le fichier avec les includes dépilés dedans.
Là je vais voir pour les DLL. C'est déjà plus compliqué, vu qu'il faut déjà comprendre le fonctionnement de celles-ci, lire les explications, etc. Hier soir j'ai récupéré celles de Klaus sur ce qui vient de faire. Le point de départ est la mise en scène du programme pour la présentation des dlls. et comprendre comment faire des choses simples. |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 12:53 | |
| Ok je crois que j'ai compris le problème,
Il s'agit d'appeler un chat un chat, il y a confusion entre nom d'un dossier et son chemin.
En faisant un nouvel essai j'ai perdu un code source complet (pas grave j'ai des copies), je vais tout mettre à la poubelle et recommencer la manip.
Je pense qu'il serait bon que tu nous décrive point par point l'installation.....
A+ | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 13:05 | |
| Ok Jean-Claude. Je referais toute la démonstration ce soir. Normalement si tu as extrait dans un autre dossier, des simples copie/coller des fichiers de ton dossier, dans celui de "C:\Panoramic-Init" devrait suffire. Dommage je n'ai pas le temps maintenant. @+ |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 17:24 | |
| Je viens de m'apercevoir, qu'il manque un programme Panoramic, celui qui a la fonction Chain pour lancer à partir du bouton RUN. Donc cette fonction ne peut fonctionner pour l'instant. Je sauvegarde sur une clé, le contenu du dossier "c:\Panoramic_Init", pour voir la réception depuis le début. Je fais l'ensemble des opérations, avec les démonstrations. Je mettrais l'ensemble ce soir normalement. |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 19:46 | |
| J'ai refait le zip. À la réception, vous ouvrez le fichier texte d'explication. J'ai rajouté le fichier manquant. J'ai refait l'installation au fur et à mesure du texte. Chez moi, un clic sur le plugiciel fonctionne.
Ne pas hésiter s'il y a un problème. |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Plugicielle pour Panoramic Lun 23 Avr 2012 - 21:26 | |
| Chez moi, ça marche très bien Beau boulot. Je me demande ce que va donner la suite | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Mar 24 Avr 2012 - 7:22 | |
| Merci pour ta réponse. Je ferais de mon meux.^^ (t'as vu, je t'imites) ^^ |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Mar 24 Avr 2012 - 18:18 | |
| Est-ce que l'un de vous peut me rappeler comment on récupère les mots-clés depuis Panoramic. ça un rapport avec ce programme. @Jean-Claude J'espère que tu n'as pas de problème car ton silence m'inquiète, vu les problèmes que tu as eus. Je sais le service après-vente n'est pas à la hauteur. |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Plugicielle pour Panoramic Mar 24 Avr 2012 - 19:13 | |
| Non t'inquiète pas Cosmos, c'est que je n'ai pas réessayé, j'ai du monde à la maison pour la semaine et je suis un peu obligé de faire acte de présence. | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Mar 24 Avr 2012 - 19:18 | |
| Merci, tant mieux. Vu l'heure bonne apéro: |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Plugicielle pour Panoramic Mar 24 Avr 2012 - 21:05 | |
| | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Mer 25 Avr 2012 - 0:24 | |
| Bonsoir, et merci JL35 Je ne suis pas du tout là-dessus, mais je me suis rendu compte qu'avec Auto It, la commande recherche et remplacement de Panoramic ne fonctionnait pas avec le plugin.
Je me suis demandé s'il ne serait pas possible de faire un écran avec toutes les lignes correspondant à un mot ne pouvait pas être affiché. Jusque-là pas de problème, mais ce qui serait bien, c'est d'avoir la possibilité de savoir si une variable ferait partie du nom d'un objet, ou autres. Si la distinction pouvait être faite, en un clic, on pourrait changer le numéro d'un objet, sans toucher aux variables, ou inversement. Je pense qu'il y aurait une idée là-dessus, à creuser.
Si l'un de vous a une très bonne idée, ou la volonté de faire un include qui s'adapte au programme: sauve_forme_pour_autoit.bas (le nom, n'est pas formidable, mais je voulais le reconnaitre parmi les autres que j'ai dans le dossier), cela me ferais plaisir. Il y a tellement de choses à faire. |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Dim 29 Avr 2012 - 0:12 | |
| J'ai fait un programme pour avoir la liste et le chemin des DLL qui j'espère pourront avoir des commandes pour leurs manipulations. Il n'y a pas urgence, mais je gagnerai du temps en lemettant maintenant. Voici comment cela se présente: Il faut cliquer sur le GRID VERT à gauche, sur une ligne. Cela fait apparaitre le numéro dans un cadre jaune. En cliquant sur ce numéro, une boite de dialogue pour les dossiers apparait (il faudra que je change le titre, un oubli)
Pour revenir en arrière dans la boîte de dialogue, il faut cliquer sur les deux-points. En recliquant sur la ligne de la grille, la liste des dlls apparaît. On peut tout sélectionner, ou désélectionner (bascule), et en cliquant sur une ligne, modifier une sélection. Au final, reste plus qu'à ajouter la liste dans le GRID de droite. [url=https://sd-2.archive-host.com/membres/up/93503147062755081/EditeurPanoramic/liste_dll.jpg] On a le celui-ci. En cliquant sur une ligne, on déplace une barre de modification des textes. Le carré rouge, permet de recopier le nom directement de la ligne précédente. Au départ, tous les flags sont à zéro. Au fur et à mesure que le programme pour faire les commandes de dll est fait, on met le flag correspondant à 1. PROGRAMME: (il y a un include compris dedans)- Spoiler:
- Code:
-
' programme pour tabler les DLL error_french width 0,750 +180:height 0,screen_y label mouse_info , prise_info ,mouse_path, prise_path,prise_path_suite ,liste , sauve label initial , valide , decide ,all_select , aide ,aide_s , empile , copier ,del dim a% ,b% ,a$ , b$ ,c$ , f$ ,x,y ,a ,list$ , j% ,anul% , path% dim c%,l%:' colonne et ligne% dim w%(10):' tableau des largeurs de colonnes dim t%(50) dim u%(10):u%(1)=3:u%(2)=2:u%(3)=4:u%(4)=5:u%(5)=6 :' pour le tableau,ordre de tri, la DLL en premier a=40 rem montre une boite de dialogue servant à définir les dossiers, appelé comme #INCLUDE rem les numéros sont définis par le programe appelant et transmis par la variable "a" if variable("a")=0 then dim a:a=1 :' seulement pour la mise au point, vu que a est définit ailleurs if variable("OBJ_")=0 then dim OBJ_ if variable("DIR_a%")=0 then dim DIR_a% if variable("DIR_a$")=0 then dim DIR_a$ if variable("DIR_f$")=0 then dim DIR_f$ if variable("DIR_test%")=0 then dim DIR_test% if variable("DIR_dossier$")=0 then dim DIR_dossier$ if variable("OBJ_DIR")=0 then dim OBJ_DIR if variable("DIR_fichier$")=0 then dim DIR_FICHIER$ if variable("ini_DIR%")=0 then dim ini_dir% if variable("OBJ_edit")=0 then dim OBJ_edit if variable("OBJ_sortir")=0 then dim OBJ_sortir if variable("OBJ_accepte")=0 then dim OBJ_accepte rem passage de paramètres depuis le programme appelant OBJ_=a : ' ainsi il n'est pas nécessaire de reprendre le programme, transmis par le programme appelant DIR_Fichier$=dir_current$ OBJ_DIR=OBJ_ form OBJ_DIR :command_target_is OBJ_DIR : hide OBJ_DIR width OBJ_DIR,445:border_hide OBJ_DIR:color OBJ_DIR,180,180,170:top OBJ_DIR,010:left OBJ_DIR,500 :height OBJ_DIR,525 dir_change "C:\" label DIR_dossier ,DIR_disque , DIR_choix ,DIR_impose ,DIR_retour ,DIR_exit,DIR_ferme,DIR_sorti,ini_DIR,DIR_end on_close OBJ_DIR,DIR_ferme OBJ_DIR=OBJ_+1 :' 16 alpha OBJ_DIR:top OBJ_DIR, 5:left OBJ_DIR,100:font_bold OBJ_DIR:font_size OBJ_DIR,10:' font_color OBJ_DIR,204,204,153 caption OBJ_DIR,"choisir le dossier d'installation" OBJ_DIR=OBJ_+2 :' 15 edit OBJ_DIR:top OBJ_DIR,35:left OBJ_DIR,5:width OBJ_DIR,435:font_size OBJ_DIR,12:font_bold OBJ_DIR:color OBJ_DIR,255,255,153 :OBJ_edit=OBJ_DIR hint obj_dir,obj_dir OBJ_DIR=OBJ_+3 :' 19 alpha OBJ_DIR:top OBJ_DIR,65:left OBJ_DIR,80:font_color OBJ_DIR,255,255,255:font_bold OBJ_DIR:font_size OBJ_DIR,10:caption OBJ_DIR,"dossier" OBJ_DIR=OBJ_+4 :' 10 list OBJ_DIR: top OBJ_DIR,85:left OBJ_DIR,5:width OBJ_DIR,230:height OBJ_DIR,390:font_size OBJ_DIR,12:font_bold OBJ_DIR:color OBJ_DIR,255,255,204:on_click OBJ_DIR,DIR_choix OBJ_DIR=OBJ_+5 :' 11 list OBJ_DIR: top OBJ_DIR,85:width OBJ_DIR,200:left OBJ_DIR,240:height OBJ_DIR,305:font_color OBJ_DIR,160,160,160 OBJ_DIR=OBJ_+6 :' 13 alpha OBJ_DIR:top OBJ_DIR,397:left OBJ_DIR,245:font_color OBJ_DIR,255,255,255:font_bold OBJ_DIR:font_size OBJ_DIR,10:caption OBJ_DIR,"Lecteur:" OBJ_DIR=OBJ_+7 :' 14 list OBJ_DIR:top OBJ_DIR,415:left OBJ_DIR,245:height OBJ_DIR,60:width OBJ_DIR,50:font_size OBJ_DIR,12:color OBJ_DIR,255,255,210 :on_click OBJ_DIR,DIR_disque OBJ_DIR=OBJ_+8 :' 18 edit OBJ_DIR:top OBJ_DIR,490:left OBJ_DIR,170:width OBJ_DIR,270:font_size OBJ_DIR,12:font_bold OBJ_DIR:color OBJ_DIR,255,255,153:on_change OBJ_DIR,DIR_impose OBJ_DIR=OBJ_+9 :' 20 button OBJ_DIR:top OBJ_DIR,410:left OBJ_DIR,330:caption OBJ_DIR,"sortir" :on_click OBJ_DIR,DIR_retour: OBJ_accepte =OBJ_DIR OBJ_DIR=OBJ_+10 :' 21 button OBJ_DIR:top OBJ_DIR,450:left OBJ_DIR,330:caption OBJ_DIR,"accepter" :on_click OBJ_DIR,DIR_exit : OBJ_sortir =OBJ_DIR OBJ_DIR=OBJ_+11 :' 17 alpha OBJ_DIR:top OBJ_DIR,500:left OBJ_DIR,5:font_color OBJ_DIR,255,255,255:font_bold OBJ_DIR:font_size OBJ_DIR,10:caption OBJ_DIR,"créé nouveau dossier :" OBJ_DIR=OBJ_ :command_target_is 0 ' gosub ini_DIR goto DIR_sorti :' pour include DIR_end: end ' ============================================== ini_DIR: to_foreground OBJ_ if ini_dir%=0 for DIR_a%=asc("C") to asc("Z") DIR_a$= chr$(DIR_a%)+":" : if dir_exists(DIR_a$)=1 then item_add OBJ_+7,DIR_a$ next DIR_a% ini_dir%=1 end_if return DIR_dossier: gosub ini_dir clear OBJ_+4:clear OBJ_+5 item_add OBJ_+4,".." DIR_a$ = file_find_first$ while DIR_a$<>"_" DIR_test%=File_Exists(DIR_a$) if DIR_test%=0 item_add OBJ_+4,DIR_a$ else item_add OBJ_+5,DIR_a$ end_if DIR_a$ = file_find_next$ end_while file_find_close return DIR_disque: gosub ini_dir dir_change "C:\" DIR_f$= item_index$(OBJ_+7):DIR_dossier$=DIR_f$ dir_change DIR_f$ : gosub DIR_dossier return DIR_choix: gosub ini_dir DIR_f$=item_index$(OBJ_+4) dir_change DIR_f$ if item_index(OBJ_+4)>1 DIR_dossier$=DIR_dossier$+"\"+DIR_f$ else for DIR_a%=len(DIR_dossier$) to 1 step -1 if mid$(DIR_dossier$,DIR_a%,1)="\" then exit_for next DIR_a% if DIR_a%>2 then DIR_dossier$=left$(DIR_dossier$,DIR_a%-1) end_if gosub DIR_dossier gosub DIR_impose return DIR_impose: if text$(OBJ_+8)<>"" then text OBJ_+2,DIR_dossier$+"\"+text$(OBJ_+8) :else:text OBJ_+2,DIR_dossier$ return DIR_exit: hide OBJ_:active 0:DIR_dossier$="_" :text OBJ_+2,"_" if DIR_f$="" or DIR_f$="_" else DIR_f$=left$(DIR_f$,DIR_a%-1) :dir_change DIR_fichier$:hide OBJ_ end_if return DIR_retour: clipboard_string_copy text$(OBJ_+2) :dir_change DIR_Fichier$:hide OBJ_ return DIR_ferme: terminate DIR_sorti: dir_change DIR_fichier$:hide OBJ_ w%(1)=1:w%(2)=16:w%(3)=38:w%(4)=143:w%(5)=203:w%(6)=230 ' ------------------------------------------------------------------------------ GRID 15:top 15,35:grid_column 15,2:grid_row 15,20:width 15,210:height 15,360:grid_fixed_color 15,80,255,199 grid_one_column_width 15,1,20:grid_one_column_width 15,2,180:grid_row_height 15,16 for a%=2 to 20:grid_write 15,a%,1,a%-1:next a% grid_write 15,1,2," chemin des différentes DLL" ' ~~~~~~ BUTTON 16:width 16,24 : height 16,21 :left 16,-20 :font_bold 16 :font_size 16,13 EDIT 21:width 21,20 : height 21,17 :left 21,-20 :font_bold 21 :font_size 21,11 :color 21,255,255,0 :font_color 21,255,0,0 ' ------------------------------------------------------------------------------ GRID 20:left 20,380:top 20,20:grid_column 20,6:grid_row 20,40 :width 20,500:height 20,height(0)-90:grid_fixed_color 20,231,252,252 grid_one_column_width 20,1,15 :' n° grid_one_column_width 20,2,20 :' flag grid_one_column_width 20,3,105 :' DLL nom grid_one_column_width 20,4,60 :' auteur grid_one_column_width 20,5,25 :' chemin grid_one_column_width 20,6,243 :' commentaire grid_row_height 20,16 grid_write 20,1,2,"flag":grid_write 20,1,3," DLL":grid_write 20,1,4," Auteur" grid_write 20,1,5,"path":grid_write 20,1,6," COMMENTAIRE" for a%=1 to 40:grid_write 20,a%,1,a%:next a% BUTTON 9:caption 9,"enregistre":on_click 9,sauve ALPHA 10:left 10,100 :alpha 8:left 8,400 BUTTON 11:width 11,15 : height 11,15 :left 11,-20 ' ~~~~~~ BUTTON 22:left 22,380+18:top 22,38:width 22,507:height 22,20 check 23:left 23,left(22)+3 :top 23,top(22):width 23,12 edit 24:left 24,left(22)+19 :top 24,top(22):width 24,106 :color 24,255,255,246 edit 25:left 25,left(24)+107:top 25,top(22):width 25,57 :color 25,255,255,246 edit 26:left 26,left(25)+64 :top 26,top(22):width 26,24 :color 26,255,255,246 edit 27:left 27,left(26)+25 :top 27,top(22):width 27,244 :color 27,255,255,246 button 29:left 29,left(27)+244:top 29,top(22)+2:width 29,23 :caption 29,"ok":height 29,16 edit 31:left 31,left(26)-10 :top 31,top(22)+3:width 31,10:color 31,255,0,0:height 31,16 :hint 31,"copie le nom de la ligne précédente" :cursor_arrow 31 button 32:left 32,left(29)+23 :top 32,top(22)+2:width 32,23 :height 32,16:caption 32,"del":on_click 32,del hint 32,"efface les données de la ligne" ' ------------------------------------------------------------------------------ button 17:left 17,220:top 17,18:width 17, 50:height 17,15:caption 17,"ajouter" LIST 18:left 18,220:top 18,35:width 18,150:height 18,height(0)-100:color 18,250,237,200 button 30:left 30,280:top 30,18:width 30, 90:height 30,15:caption 30,"tout sélectionner":font_size 30,3 ' ~~~~~~ list 19:left 19,355:top 19,35:width 19, 15:height 19,height(18) button 4:left 4,355:width 4,18:height 4,20:top 4,35 check 5:left 5,357:width 5,14:height 5,18:top 5,36 :on_click 5,valide :hide 4:hide 5 ' ------------------------------------------------------------------------------ MEMO 3:top 3,415:width 3,210:height 3,height(18)-400:color 3,236,255,228 ALPHA 2:top 2,395:width 2,210:font_bold 2 :caption 2,"cliquez ici pour continuer":font_size 2,12:color 2,255,255,0 ' ------------------------------------------------------------------------------ dlist 28:' left 28,760+150:height 28,500 :width 28,200 ' ------------------------------------------------------------------------------ gosub initial if grid_read$(20,2,2)="1" then mark_on 23 text 24,grid_read$(20,2,3) text 25,grid_read$(20,2,4) text 26,grid_read$(20,2,5) text 27,grid_read$(20,2,6) ' ------------------------------------------------------------------------------ on_click 18,decide on_click 20,mouse_info on_click 29,prise_info on_click 15,mouse_path on_click 16,prise_path :on_click 21,prise_path on_click 17,empile on_click 30,all_select on_click 31,copier end ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ initial: ' ------------------------------------------------------------------------------ if file_exists("c:\Panoramic-Init\chemin.txt") = 1 file_load 28,"c:\Panoramic-Init\chemin.txt" if count(28)>0 for a%=1 to count(28) a$=item_read$(28,a%) grid_write 15,a%+1,2,a$ next a% end_if end_if ' -------------------------------------------------- if file_exists("c:\Panoramic-Init\DLL.txt") = 1 file_load 28,"c:\Panoramic-Init\DLL.txt" if count(28)>0 for a% = 1 to count(28) a$=item_read$(28,a%) b%=2 repeat c%= instr(a$,"/") if c%>0 b$= left$(a$,c% -1) grid_write 20,a%+1,b%,b$ a$=mid$(a$,c%+1,len(a$)) b%=b%+1 end_if until c% =0 or scancode =27 next a% end_if end_if gosub aide return ' ============================================================================== copier: if l%>2 a$=grid_read$(20,l%-1,4) grid_write 20,l%,4,a$ : text 25,a$ end_if return ' ============================================================================== del: for a%=2 to 6 :grid_write 20,l%,a%,"": next a% mark_off 23:text 24,"":text 25,"":text 26,"":text 27,"" return ' ============================================================================== all_select: anul%=-1-anul% :if anul%=0 then caption 30,"annule select..":else:caption 30,"tout sélectionner" if count(19)>0 for a%=1 to count(19):item_delete 19,a% if anul%= -1 then item_insert 19,a%,"1" :else: item_insert 19,a%,"0" next a% end_if hide 4:hide 5 return sauve: ' ---- dossiers des dll for a%=20 to 1 step -1 caption 8,"a%="+str$(a%)+" >"+ grid_read$(15,a%,2) if grid_read$(15,a%,2)<> "" then exit_for next a% : l%=a% item_add 28,"92 l%=" + str$(l%) file_open_write 2,"c:\Panoramic-Init\chemin.txt" for a%=2 to l% file_writeln 2, grid_read$(15,a%,2) item_add 28,"98: "+ grid_read$(15,a%,2) next a% item_add 28,"100: fin close" file_close 2 ' ---- renseignements des DLL for a%=40 to 1 step -1 item_add 28,"104: a%=" + str$(a%)+ " >"+ grid_read$(20,a%,3) if grid_read$(20,a%,3) <>"" then exit_for next a% : l%=a% item_add 28,"107: L%=" + str$(l%) file_open_write 2,"c:\Panoramic-Init\DLL.txt" for a%=2 to l% item_add 28,"114: a%="+str$(a%) b$="" for b%=2 to 6 b$=b$+grid_read$(20,a%,b%)+"/" next b% file_writeln 2,b$ next a% item_add 28,"120: fin close" file_close 2 return ' ------------------------------------------------------------------------------ mouse_info: x= mouse_x_position(20) : y= mouse_y_position(20) l%= (y -8 ) /17 +1 for a%= 6 to 1 step -1 if x < w%(a%) else c%=a% exit_for end_if next a% top 22,l%*17+5 : top 23,top(22) : top 24,top(22) : top 25,top(22) top 26,top(22) : top 27,top(22) : top 29,top(22)+2 : top 31,top(22)+3 : top 32,top(22)+2 if grid_read$(20,l%,2)= "1" then mark_on 23 :else:mark_off 23 text 24,grid_read$(20,l%,3) :height 24,19 text 25,grid_read$(20,l%,4) :height 25,19 text 26,grid_read$(20,l%,5) :height 26,19 text 27,grid_read$(20,l%,6) :height 27,19 color 24,255,255,246:color 25,255,255,246:color 26,255,255,246:color 27,255,255,246 return ' ------------------------------------------------------------------------------ prise_info: color 24,255,255,0:color 25,255,255,0:color 26,255,255,0:color 27,255,255,0 if l%<2 then l%=2 if checked(23) =1 then grid_write 20,l%,2,1:else:grid_write 20,l%,2,0 grid_write 20,l%,3,text$(24) grid_write 20,l%,4,text$(25) grid_write 20,l%,5,text$(26) grid_write 20,l%,6,text$(27) return ' ------------------------------------------------------------------------------ decide: j%=item_index(18) top 4,j%*13+35-15:top 5,top(4)+2 :show 4:show 5 if item_read$(19,j%) ="0" then mark_off 5:else:mark_on 5 return valide: if checked(5)=1 t%(j%)=1 :item_delete 19,j%:item_insert 19,j%,"1" else t%(j%)=0 :item_delete 19,j%:item_insert 19,j%,"0" end_if return ' ------------------------------------------------------------------------------ mouse_path: x= mouse_x_position(15) y= mouse_y_position(15) l%= (y -8 ) /17 +1 for a%= 6 to 1 step -1 if x < w%(a%) else c%=a% exit_for end_if next a%:' 22 left 16, 0 :top 16,l% * 17 +18 left 21, 2 :top 21,top(16)+2 :text 21,l%-1 :height 21,17 hide 4:hide 5:mark_off 5 path%=l% -1 gosub liste return ' ------------------------------------------------------------------------------ prise_path: a$ = grid_read$(15,l%,c%) show OBJ_DIR gosub ini_DIR gosub DIR_end on_click OBJ_accepte,prise_path_suite on_click OBJ_sortir ,prise_path_suite end prise_path_suite: hide OBJ_ a$= text$(OBJ_edit) if number_click = OBJ_sortir then grid_write 15,l%,2, a$ :caption 10,a$:gosub liste return ' ============================================================================== empile: ' on remet de l'ordre dans le grid 20 clear 28 for a%=2 to 40 a$="" ' reste à mettre dans l'ordre du tri for b%=1 to 5 a$= a$ + grid_read$(20,a%,u%(b%))+"/" next b% if a$<>"/////" item_add 28,a$ end_if next a% sort 28 for a% = 2 to 40 if a% > count(28) then exit_for a$ = item_read$(28,a%-1) for b%=1 to 5 b$=left$(a$,instr(a$,"/")-1) a$=mid$( a$,instr(a$,"/")+1,len(a$)) grid_write 20,a%+1,u%(b%),b$ next b% next a% ' message "le tri est fait" ' a revoir ' on ajoute la liste 18 if count(18) > 0 c%=count(28) +2 for a%=1 to count(18) a$ = item_read$(18,a%) if item_read$(19,a%)="1" for b%=c% to 2 step -1 if grid_read$(20,b%,3)=a$ then exit_for next b% ' message "b%="+str$(b%)+" c%="+str$(c%) if b%=1 grid_write 20,c%,3,a$ :grid_write 20,c%,2,"0" grid_write 20,c%,5,path% :c%=c%+1 :' message "ecrire" end_if end_if next a% end_if return ' ------------------------------------------------------------------------------ liste: ' revoir, il faut aussi pouvoir item_index! f$ = grid_read$(15,l%,2) caption 10,f$ if dir_exists(f$) = 1 and f$<> "" dir_change f$ clear 18 : clear 19 list$ = file_find_first$ while list$<>"_" a%=File_Exists(list$) if a%>0 and right$(upper$(list$),4) = ".DLL" item_add 18,list$ item_add 19,"0" end_if list$ = file_find_next$ end_while file_find_close else clear 18:clear 19 end_if for a%=2 to 50:t%(a%)=0:next a% return ' ##################################################################################### data "Ce programme est conçu pour aller chercher les DLLs qui peuvent être " data " dans un programme Panoramic, les mettre en liste, et ensuite marquer " data "celles qui ont été programmées dans le programme de mot clés. " data "Le Grid de gauche sert à l'aide d'une boite de dialogue, à rechercher les dossiers" data" qui concerne les DLLs. Il suffit de cliquer sur la 1ère ligne pour voir la boite. Si " data "une ligne contient un chemin défini, le clic sur celle-ci dépile les Dll dans le liste " data "à côté. " data "On peut tout sélec- tionner ou désélectionner. Cliquer sur une ligne fait apparaitre" data "un boite à cocher. En cliquant dessus, on sélectionne la ligne ou non. Cette liste sert d'un coup " data "à ajouter toutes les lignes cochées, dans le GRID de droite (bleu). " data "»" data "Le GRID bleu, est le grid de réception des dll, avec les renseignements l'accompagnant. Un clic sur " data "une ligne fait apparaitre une barre pour modifier les renseignements. Celles-ci sont validées par le bouton à droite " data "la boite à cocher sert à valider au fur et à mesure, que les commandes pour Panoramic sont faites. " data "la case rouge sur la barre d'édition, sert à copier la le nom de la ligne précédente. " data "Le bouton 'del' efface toute la ligne de la barre d'édition" data "$$$" aide: a$="" repeat read b$ if b$="»" on_click 2,aide_s:end aide_s: hide 2 end_if if b$<>"$$$" then a$=a$+b$ if right$(b$,1)=" " then b$=left$(b$,len(b$)-1):a$=a$+b$:item_add 3,a$ :a$="":b$="" until b$="$$$" or scancode = 27 item_add 3,a$+chr$(0) return
Dernière édition par cosmos70 le Jeu 3 Mai 2012 - 3:33, édité 1 fois |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Plugicielle pour Panoramic Dim 29 Avr 2012 - 1:03 | |
| Tu t'es éclaté ... bon, j'ai regardé un peu le programme fonctionne chez moi, je regarde demain les tenants et aboutissant, trop tard, ce soir ... | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Dim 29 Avr 2012 - 2:05 | |
| Ce n'est pas que je m'éclate, mais moi je fonctionne aux idées. Quand j'en ai une, je ne peux pas m'empêcher de le mettre au point. Ça fonctionne bien. Le seul défaut est qu'il faut que le nombre de lignes soit dans la page. Autrement, pour une liste, on peut faire la comparaison entre item_index et la position du curseur. Pour une grille, il faut trouver autre chose. Je ne sais plus, mais il me semble que Jack avait parlé de commandes pour les clics. Je n'ai pas vérifié. On verra plus tard. |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Dim 29 Avr 2012 - 19:11 | |
| Bon, j'ai pris le temps de faire des erreurs volontaires dans des includes, pour tester le programme, après avoir modifié la recherche d'une ligne, en cas d'erreur avec les includes. Pour moi, c'est ok, au lieu de mettre une ou plusieurs minutes pour montrer la ligne en cause, celà met deux/trois secondes. J'ai repris comme je crois l'avoir dit, le programme, pour s'adapter avec les includes. Donc il y a deux programmes, au lieu d'un: le lanceur qui est toujours: "sauve_forme_pour_Autoit.bas", et le complément: "INCLUDE_Autoit_Pano.bas" le programme: sauve_forme_pour_Autoit.bas". Il faudra faire un exécutable de ce programme. - Code:
-
' programme d'essai de sauvegarde pour AutoIt left 0,100:width 0,900 : error_french caption 0,"Sauve_form_pour_autoit" ' ----------------- LABEL de départ pour INCLUDE_Autoit_Pano.bas --------------- ' label effacer,save,run,quit,cde ,copier ,err ,ouvrir ,marque_ligne , ajout_marque, ligne_a_ligne ,suite_ligne_a_ligne ' ----------------- DIM de départ pour INCLUDE_Autoit_Pano.bas ----------------- dim fichier$ , cde% ,edit$ , er$ ,h, a$,b$, a%,f$ ,b% ,b1$ , objet% ,a1$ , c%,c$, flag% ,coller$ dim Dll$ :' dim pour les dll ' ---------mise en place code DLL----------------------------------------------- ' #INCLUDE "c:\Panoramic-Init\DEBUT_DLL.bas"
' ---------programme général pour AutoIt---------------------------------------- #INCLUDE "c:\Panoramic-Init\INCLUDE_Autoit_Pano.bas" ' résumé: ' MEMO 1: recoit le programme ' EDIT 10: $TFichier recoit le nom du fichier ' EDIT 11: $TCde par on_change, choisi la procédure ' EDIT 12: $Table recoit des infos qui peuvent être mises en list ' EDIT 13: $TCtrl pour envoyer un flag de retour si nécessaire ' EDIT 14: $TCount à l'origine, envoie le nb de lignes à lire, normalement plus utilisé ' LIST 15: pour l'assemblage des fichiers ' FORM 20 et PICTURE 21 pour montrer les lignes demandées. Détruit à chaque fois ' --------------------------------------------------------------------------------------- ' commande de EDIT 10: 1:efface le MEMO 1 | 2:sauvegarde ' 3:run | 4:quite ' 5:copier | 6:ouvrir ' 7:marque_ligne | 8:ligne à ligne (appelé par 7 / ou suite de 7) ' ----------------------------------------------------------------------------------------
et l'include: qui est le complément: - Code:
-
' programme include pour "sauve_forme_pour_autoit.bas" ' nommé: INCLUDE_Autoit_Pano.bas
label effacer,save,run,quit,cde ,copier ,err ,ouvrir ,marque_ligne , ajout_marque, ligne_a_ligne ,suite_ligne_a_ligne ' dim fichier$ , cde% ,edit$ , er$ ,h, a$,b$, a%,f$ ,b% ,b1$ , objet% ,a1$ , c%,c$, flag% ,coller$
memo 1:full_space 1:font_size 1,10 :top 1,25:width 1,3000:color 1,253,253,217:font_name 1,"Fonts" height 0,height(0)+65 :' width 0,width (0) +300 :left 1,300 main_menu 2 sub_menu 3 :parent 3,2:caption 3,"&fichier" sub_menu 4:parent 4,3:caption 4,"&effacer" sub_menu 5:parent 5,3:caption 5,"&save" sub_menu 6:parent 6,3:caption 6,"&run" sub_menu 7:parent 7,3:caption 7,"&quit"
EDIT 10:width 10,150:font_size 10,10:' $TFichier edit 11:left 11,160:width 11,50:' $TCde EDIT 12:left 12,220:width 12,150:' $Table EDIT 13:left 13,380:width 13, 50:' $Tctrl EDIT 14:left 14,440:width 14, 50:' $Tcount
list 15: top 15,25:left 15,700:width 15,180:height 15,250:hide 15:' assemblage des fichiers dlist 16:' width 16,50:height 16,430:top 16,25 dlist 17:' left 17,60:top 17,25:width 17,210:height 17,430
on_click 4,effacer on_click 5,save on_click 6,run on_change 11,cde
end ' ---------------------------------------------------- err: er$="erreur depuis 'sauve_forme_pour_autoit.bas'"+ chr$(13) + "ligne:"+str$(error_line)+" "+error_type$ message er$ on_change 11,cde return ' ---------------------------------------------------- cde: cde%=val(text$(11)) off_change 11 fichier$=text$(10) edit$=text$(12) text 11,""
select cde% case 1 :gosub effacer case 2 :gosub save case 3 :gosub run case 4 :gosub quit case 5 :gosub copier case 6 :gosub ouvrir case 7 :gosub marque_ligne case 8 :gosub ligne_a_ligne end_select return ' ---------------------------------------------------- ligne_a_ligne: ' commande 8 ' on va ajouter une forme avec picture, pour remplacer richedit
form 20:top 20,100:width 20,screen_x:height 20,220:caption 20,"Vu sur des lignes du programme":border_small 20 on_close 20,suite_ligne_a_ligne :HIDE 20
picture 21:parent 21,20:full_space 21:font_name 21,"Bitstraem_Vera Sans_Mono":print_target_is 21 : font_size 21,14 2d_target_is 21:color 21,240,240,236 :h = 30
if count(1) >0 a$ = message_input$("Recherche ligne","quelle ligne demandez-vous","") SHOW 20 : to_foreground 20 if numeric(a$)=1 font_color 21, 0,0,255:font_bold 21 : print_locate screen_x /2 - 110,10 :2d_fill_color 255,255,0 print " Vu sur des lignes du programme " : font_bold_off 21 a%=val(a$) if a%>1 and a%<=count(1) font_size 21,11
' 1ère ligne la précédente demandée--------------------------------- a%=a%-1 2d_fill_color 243,236,223:2d_pen_color 243 ,236, 223 2d_rectangle 0,10+h,width(21),50+h : font_color 21,255,0,0 :' pour le fichier et le numéro a$ = item_read$(1,a%)
c%= val(item_read$(16,a%)):c$= right$(" "+str$(c%) ,5)
print_locate 50,12+h:print item_read$(17,a%) :' fichier$ print_locate 5,30+h:print c$ +" "; font_color 21,0,0,255 : print a$
' 2ème ligne, celle demandée---------------------------------------- a%=a%+1 2d_fill_color 255,255,163:2d_pen_color 255, 255, 163 2d_rectangle 0,60+h,width(21),100+h : font_color 21,255,0,0 :' pour le fichier et le numéro a$ = item_read$(1,a%)
c$ = item_read$(16,a%) :' n° de ligne c%= val(c$):c$= right$(" "+str$(c%),5)
print_locate 50,62+h:print item_read$(17,a%) :' fichier print_locate 5,80+h:print c$ +" "; font_color 21,0,0,255 : print a$
' 3ème ligne, celle demandée---------------------------------------- a%=a%+1 2d_fill_color 243,236,223:2d_pen_color 243, 236, 223 2d_rectangle 0,110+h,width(21),150+h : font_color 21,255,0,0 :' pour le fichier et le numéro a$ = item_read$(1,a%)
b$ = mid$(a$,b%+5,len(a$)) c$ = item_read$(16,a%) :' n° de ligne c%= val(c$):c$= right$(" "+str$(c%),5)
print_locate 50,112+h:print item_read$(17,a%) :' fichier print_locate 5,130+h:print c$ +" "; font_color 21,0,0,255 : print a$ caption 20,"cliquez sur la fenêtre pour continer"
2d_pen_width 1 : 2d_pen_color 140,140,140 : 2d_pen_solid : 2d_line 40,0,40,255 END suite_ligne_a_ligne: off_click 20 end_if :' / b%>0
end_if :' / numeric(a$)=1 end_if :' / count(1) >0 delete 20 text 13,"ok" on_change 11,cde return ' ---------------------------------------------------- run: ' fichier$= "z:\Teste_Include.bas" clear 1 ' item_add 1,edit$ coller$ = clipboard_string_paste$ item_add 1,coller$ on_error_goto err ' if file_exists(fichier$) =1 ' file_load 1,fichier$
rem "=========== a partir d'ici je reprend le fichier ==============" ' on regarde chaque ligne du programme, on regarde si il y a un INCLUDE, ' si c'est le cas, on met le flag à 1, et on ajoute chaque ligne de l'include, ' on ajoute le reste. ' on recommence tant que le flag est à 1 if count(1) >0 repeat flag%=0 : a%=1 repeat a$=item_read$(1,a%):b$= UPPER$(Ltrim$(a$) ) if left$( b$ ,9) ="#INCLUDE " f$=mid$(a$, instr(a$,chr$(34)) +1,len(a$)) f$=left$(f$, instr(f$,chr$(34))-1) if file_exists(f$) = 1 file_load 15,f$ item_delete 1,a% :' ne rentre pas dans le compte de ligne else message "fichier:"+f$+" pas trouvé" :on_change 11,cde flag%=-1 text 13,"nul" exit_repeat end_if ' on lit chaque ligne du dlist 15, si il y a include, le flag est mis à 1 if count(15) >0 for b%=1 to count(15) b$ = item_read$(15,b%) :b1$ = UPPER$(Ltrim$(b$) ) if left$( b1$ ,9) ="#INCLUDE " then flag%=1 item_insert 1,a%,b$ :' on insère à partir de l'appel de l'INCLUDE a%=a%+1 next b% ' fin d'inclusion end_if end_if a%=a%+1 until count(1) < a% or scancode =27 if flag%=-1 then return until flag%=0 or scancode =27 else text 13,"nul" : return end_if rem "=========== la reprise du fichier est faite ==================="
file_save 1,"C:\Panoramic-Init\lancement_Run.bas" repeat : wait 250: until file_exists("C:\Panoramic-Init\lancement_Run.bas") =1 or scancode =27 wait 100 execute_wait "C:\Panoramic-Init\Fonction_Exécute_Panoramic.exe" text 13,"ok"
on_change 11,cde return
' ---------------------------------------------------- marque_ligne: ' appel par 7 ' fichier$= "z:\Teste_Include.bas" on_error_goto err clear 1:clear 16:clear 17 coller$ = clipboard_string_paste$ item_add 1,coller$ ' ======================================================================== if count(1)>0 flag%=0 for a%=1 to count(1) a$=item_read$(1,a%) if left$(trim$(upper$(a$)) ,9)="#INCLUDE " then flag%=1 item_add 16,a% : item_add 17,fichier$ next a%
while flag%=1 flag%=0 :a%=1 repeat a$ = item_read$(1,a%) if left$(trim$(upper$(a$)) ,9)="#INCLUDE " flag%=1 item_delete 1,a% : item_delete 16,a% : item_delete 17,a%:' on enlève la ligne include fichier$=mid$(a$, instr(a$,chr$(34))+1,len(a$)) fichier$=left$(fichier$,len(fichier$)-1) if file_exists(fichier$) = 1 file_load 15,fichier$ if count(15)>0 for b%=1 to count(15) b$=item_read$(15,b%) item_insert 1,a%,b$ : item_insert 16,a%,str$(b%):item_insert 17,a%,fichier$ a%=a%+1 next b% end_if else message "erreur: impossible de trouver:"+fichier$ text 13,"nul" : exit_while end_if end_if a%=a%+1 until a%>count(1) end_while end_if on_change 11,cde if text$(13) <> "nul" then text 11,8 return ' ---------------------------------------------------- ajout_marque:
for a%=1 to count(objet%) a$=item_read$(objet%,a%):a1$=trim$(upper$(a$)) if left$(a1$,9)="#INCLUDE " flag%=1 else if instr(a1$," ")= 0 and right$(a1$,1)=":" ' label else :' ('¦'=204 '-'=205) '¦'=219 '¦' 221; marqueur de repérage a1$= ":' "+chr$(204)+chr$(205) + fichier$ + chr$(219) + str$(a%) + chr$(221) item_delete objet%,a% : item_insert objet%,a%,a1$+a$ end_if end_if next a% return ' ---------------------------------------------------- effacer: clear 1 on_change 11,cde return ' ---------------------------------------------------- save: on_error_goto err clear 1 item_add 1,edit$ file_save 1,"C:\Panoramic-Init\copie.bas" if file_exists(fichier$) = 1 then file_delete fichier$ file_save 1,fichier$ text 13,"ok" on_change 11,cde return ' ---------------------------------------------------- ouvrir: on_error_goto err clear 1 if file_exists(fichier$) = 1 then file_load 1,fichier$ on_change 11,cde return ' ---------------------------------------------------- copier: clear 1 item_add 1,edit$ file_save 1,"z:\on regarde.bas" on_change 11,cde return ' ---------------------------------------------------- quit: terminate
La prochaine fois, lorsque j'aurai fait une ou deux commandes, je ferais en sorte de mettre les includes de ce programme, dans un dossier à part. Cela sera plus lisible. |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 30 Avr 2012 - 9:46 | |
| mise à jour à 19h40 le 30 avril 2012: ajout de Nb_coord%Bonjour, Je viens de faire à titre d'essai, un codage pour l'instruction EXPLODE. La commande est "@IF_EXPLODE". Pourquoi IF_? pour bien faire comprendre que c'est une instruction qui nécessite plusieurs lignes de remplacement, et que IF_ à pour effet que justement avec IF... THEN, ne doit pas être utilisé. Normalement avec une instruction comme DEFINIR, c'est différent, vu que HIDE WIDTH ou autre, peut être misent sur une ligne. - Code:
-
' essai de faire une commande: label explode, traitement dim fichier$ , cde% ,edit$ , er$ ,h, a$,b$, a%,f$ ,b% ,b1$ , objet% ,a1$ , c%,c$, flag% ,coller$ top 0,50 :width 0,800 ' ------------------------------------------------------------------------------ dim n% :' variables génériques de la fonction dim commande$:' chaines contenant les mot-clés dim pref$ :' préfixe de @EXPLODE ce qui est avant dim trait$ :' traitement de la commande dim separ$ :' caractère de séparation dim ch$ :' la partie chaine d'explode
' les commandes s'ajoutent au fur et à mesure de leur création dans cette chaine, pour tester avec INSTR(, leur existance commande$="FI_EXPL DEFINIR" ' DEFINIR ' 123456789012345 ' ensuite il suffira d'avoir un tableau de position dans cette chaine, pour trouver de suite la bonne ' position 1 pour IF_EXPLODE, position 9 pour DEFINIR
' semblant de programme memo 40 :width 40,500 item_add 40,"dim chaine$, coord$(10) ,explode%,explode$,v_explode%,copie$,separ$,a%,Nb_coord%" item_add 40,"chaine$ = "+chr$(34)+ "nom|prénom|adresse|téléphone"+chr$(34) item_add 40,"coord$ = @FI_EXPLODE("+chr$(34)+"|"+chr$(34)+",chaine$)" item_add 40,"for a%=1 to Nb_coord%:print coord$(a%):next a% " memo 41:width 41,750:top 41,100 :height 41,220
memo 42:width 42,600:top 42,335
dim chaine$, coord$(10) chaine$="nom|prénom|adresse|téléphone" ' on arrète ici pour commentaire on_click 40,traitement end
' fonction explode ' on reçoit: chaine$="nom|prénom|adresse|téléphone" coord$ = FI_EXPLODE("|",chaine$)
traitement: off_click 40 for a%=1 to count(40) a$=item_read$(40,a%) n%= instr(a$,"@") if n%>0 item_add 42,mid$(a$,n%+1,7) n%=instr(commande$,mid$(a$,n%+1,7)) if n%>0 select n% case 1:gosub EXPLODE case 9:' gosub DEFINIR end_select end_if ' -------------------------------------- else item_add 41,a$ end_if next a% return ' ===================================== la commande EXPLODE nécessite plusieurs lignes pour le remplacement, et toutes les commandes nécessitant pluiseurs lignes, commenceront par IF. au contraire d'une commande DEFINIR, qui permet de tout mettre sur une même ligne le remplacement ' la commande explode commence par IF pour bien montrer qu'il y a plusieurs lignes, et que IF ...THEN ne doit pas être utilisé EXPLODE: n%=instr(a$,"@FI_EXPLODE(") pref$ = trim$(left$(a$,n%-1)) : if right$(pref$,1)= "=" then pref$=trim$(left$(pref$,len(pref$)-1)) item_add 42,"pref$="+chr$(9)+pref$ ' --- maintenant on traite la partie EXPLODE
trait$= mid$( a$,n%+12,len(a$)) item_add 42,"trait$="+chr$(9)+trait$
separ$ = left$(trait$, instr(trait$,",")-1) item_add 42,"separ$="+chr$(9)+separ$ ch$= mid$(trait$, instr( trait$,",")+1,len(a$)) : ch$= left$(ch$,len(ch$)-1) item_add 42,"ch$="+chr$(9)+ch$ ' --------------------------------------------------------------------------- item_add 41,"separ$="+ chr$(34) + separ$ +chr$(34) ' --------------------------------------------------------------------------- item_add 41,"":item_add 41,"explode%=1:copie$="+ch$ item_add 41,"if right$(copie$,1)<> separ$ then copie$ = copie$ + "+chr$(34)+separ$+chr$(34) item_add 41,"repeat" item_add 41," v_explode%=instr(copie$,"+ chr$(34)+ separ$+chr$(34) +")" item_add 41," if v_explode%>0 then " + pref$ +"(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1" item_add 41,"until v_explode%=0:Nb_coord%=explode%-1" return
Quand pensez-vous? Avant de l'inclure, il faut que je vérifie entre les variables, et autre du programme qui va avec AutoIt. Le résultat est dans le memo du milieu.
Dernière édition par cosmos70 le Jeu 3 Mai 2012 - 3:39, édité 2 fois |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Plugicielle pour Panoramic Lun 30 Avr 2012 - 10:26 | |
| Bonjour Cosmos, j'ai un peu de mal à voir comment ça s'intègre tout ça. Si j'ai bien compris, dans ton dernier programme, il y aura toutes les commandes. Pour les utiliser, on intégrera le programme en include. Je dis ça, car dans ta librairie, pour moi, tu veux faire trop de chose. Tu mets les exemples dans le code, mais ça pour moi, c'est un autre programme. Dans la librairie, selon moi, tu dois avoir le minimum pour avoir un minimum de variables et d'objets définis. Par contre pour la fonction IF_EXPLODE, je pense que tu peux récupérer aussi le nombre de chaines trouvées, pour une chaine longue ça devient intéressant (si j'ai compris le principe, tu pourrais l'appeler Nb_coord% par exemple pour une chaine qui serait coord$) | |
| | | Invité Invité
| Sujet: Re: Plugicielle pour Panoramic Lun 30 Avr 2012 - 10:51 | |
| Je réponds en vitesse, je vais partir. Pour l'instant le programme n'est pas dans le plugiciel. Pour cela il faut que je fasse le découpage, entre trouver une fonction, et la fonction qui elle sera en include. Il y a déjà une partie de faite avec la variable commande qui permet de voir d'un coup d'oeil si une fonction prédéfinie est là. Pour l'instant c'est un teste. Le but est de récupérer la commande, de la retirer, et de remplacer le code par quelque chose que Panoramic puisse lire. - Citation :
- je pense que tu peux récupérer aussi le nombre de chaines trouvées
Je lis un peu vite, je n'ai pas compris. Salutation, je pars |
| | | Contenu sponsorisé
| Sujet: Re: Plugicielle pour Panoramic | |
| |
| | | | Plugicielle pour Panoramic | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |