PureBasic

Forums PureBasic
Nous sommes le Jeu 22/Aoû/2019 5:50

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: Conception d'un outil pour EPB ;)
MessagePosté: Jeu 02/Nov/2017 10:56 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
un outils pour EPB c'est un simple prg posé dans le dossier "Outils" de l'arborescence de EPB !
cet outil sera alors disponible par le menu "outils" de EPB

cet outil peut etre un prg entierement autonome
ou bien un programme qui dialogue avec EPB ...

dans le cas d'un prg qui dialogue avec EPB , il faut etablir un canal de communication bien précis
un entete dans votre code, qui sera toujours le meme !

le voici :

Code:

; attention , ne pas utiliser la procedure ci dessous (envoie_epb() ) en utilisant  EPB et le compilateur 64 Bits
; cel ne fonctionnera que si vous compilez en 32 bits


;{- ****Creation du canal de communication avec EPB ********************************
;- structure memoire partagée
Structure Partage
      declencheur.b
      valeur1.i
      message$ {10000}
EndStructure
Global *ram.Partage


Declare envoie_epb(text.s,type)

Procedure envoie_epb(text.s,type)
      ; ************************ code de debut d'utilisation du ram_disque **************************
      MemoirePartagee=CreateFileMapping_($FFFFFFFF,#Null, #PAGE_READWRITE, 0, SizeOf(Partage),"EPB_RAM")
   
      *ram=MapViewOfFile_(MemoirePartagee, #FILE_MAP_WRITE, 0, 0, 0)
      
      ; ***************************************************************************************
      *ram\declencheur.b=1
      *ram\valeur1.i=type
      *ram\message$=text.s
      ; ************************ code de fin d'utilisation du ram_disque **************************
      UnmapViewOfFile_(*ram);
      CloseHandle_(MemoirePartagee)
      ; ***************************************************************************************
      Delay(200)
EndProcedure

Enumeration  ; message reçut par EPB
      #epb_pos_curs ;pose au curseur
      #epb_rempl ;remplace ligne en cour
      #epb_insert ;insert une ligne
      #epb_saut_to_ligne ; saut a la ligne
      #epb_pos_curs_x ;position x du curseur
      #epb_selection ; creer une selection
      #epb_rempl_select ;remplace la selection
      #epb_line_to_clipboard ; la ligne en cours  vers le clipboard
      #epb_select_to_clipboard ;selection vers le Clipboard
      #epb_onglet_to_clipboard  ; contenu de l'onglet vers Clipboard
      #epb_load_file ;fichier dans nouvel onglet
      #epb_active_onglet ;active un onglet
      #epb_return_onglet ; retourne le numero de l'onglet actif
EndEnumeration


les constantes vous indiquent ce qu'il est possible de faire faire a EPb :)

par exemple , vous avez plusieurs onglet d'ouverts dans EPB
vous voulez activer l'onglet numero 1 , il suffit de faire :

Code:
; ; *******************************************************
; activation de l'onglet X
envoie_epb("1" ,#epb_active_onglet) ; active l'onglet 1
; ; *******************************************************


et voila , l'onglet numero 1 sera activé, et affichera son contenu , un "beep" se fera entendre pour signaler que EPB a bien reçut une commande :)

le code pour faire sauter EPB a la ligne numero 20
Code:
envoie_epb("20",#epb_saut_to_ligne) ; saute a la ligne 20


comme vous l'aurez compris on appel toujours la meme procedure envoie_epb()
les parametres sont en premier le message a envoyer a EPB
puis la constante (l'ordre) a faire effectuer a EPB )

ici on envoi donc le message
Citation:
"20"
, puis l'ordre
Citation:
#epb_saut_to_ligne

donc, saute a la ligne numero 20

les ordres possibles sont donc :
Code:
#epb_pos_curs ;pose au curseur
      #epb_rempl ;remplace ligne en cour
      #epb_insert ;insert une ligne
      #epb_saut_to_ligne ; saut a la ligne
      #epb_pos_curs_x ;position x du curseur
      #epb_selection ; creer une selection
      #epb_rempl_select ;remplace la selection
      #epb_line_to_clipboard ; la ligne en cours  vers le clipboard
      #epb_select_to_clipboard ;selection vers le Clipboard
      #epb_onglet_to_clipboard  ; contenu de l'onglet vers Clipboard
      #epb_load_file ;fichier dans nouvel onglet
      #epb_active_onglet ;active un onglet
      #epb_return_onglet ; retourne le numero de l'onglet actif



si par exemple vous voulez récupérer la ligne de code numero 20 dans l'onglet numero 2

il faudra d'abord activer l'onglet numero 2
Code:
envoie_epb("2" ,#epb_active_onglet) ; active l'onglet 2


puis sauter a la ligne numero 20
Code:
envoie_epb("20",#epb_saut_to_ligne) ; saute a la ligne 20


et plus qu'a recuperer le contenu de la ligne en cours (donc la 20 ) ainsi
Code:
envoie_epb("",#epb_line_to_clipboard) ; Récupére la ligne en cours, et la met dans le clipboard


la ligne se trouve alors dans le clipboard
on peut en faire ce qu'on veux :)
la mettre dans une variable pour une modification ulterieur :
Code:
Ligne_de_code.s= GetClipboardText() ; affiche le contenue du clipboard


ou l'afficher dans le debuggeur

Code:
Debug GetClipboardText() ; affiche le contenue du clipboard


pour reposer la ligne qu'on aurai modifié , il suffit alors de faire
si le curseur est toujours sur la ligne numero 20
Code:
envoie_epb(Ligne_de_code.s,#epb_rempl) ; Remplace la ligne en cours (par rapport au curseur)


sinon

Code:
envoie_epb("20",#epb_saut_to_ligne) ; saute a la ligne 20
envoie_epb(Ligne_de_code.s,#epb_rempl) ; Remplace la ligne en cours (par rapport au curseur)


voila, c'est assez simple non ? :)

donc si vous voulez rendre compatible vos outils avec EPB :)

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye