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 : Tout sélectionner
; 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
par exemple , vous avez plusieurs onglet d'ouverts dans EPB
vous voulez activer l'onglet numero 1 , il suffit de faire :
Code : Tout sélectionner
; ; *******************************************************
; activation de l'onglet X
envoie_epb("1" ,#epb_active_onglet) ; active l'onglet 1
; ; *******************************************************
le code pour faire sauter EPB a la ligne numero 20
Code : Tout sélectionner
envoie_epb("20",#epb_saut_to_ligne) ; saute a la ligne 20
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
, puis l'ordre"20"
donc, saute a la ligne numero 20#epb_saut_to_ligne
les ordres possibles sont donc :
Code : Tout sélectionner
#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 : Tout sélectionner
envoie_epb("2" ,#epb_active_onglet) ; active l'onglet 2
Code : Tout sélectionner
envoie_epb("20",#epb_saut_to_ligne) ; saute a la ligne 20
Code : Tout sélectionner
envoie_epb("",#epb_line_to_clipboard) ; Récupére la ligne en cours, et la met dans le clipboard
on peut en faire ce qu'on veux
la mettre dans une variable pour une modification ulterieur :
Code : Tout sélectionner
Ligne_de_code.s= GetClipboardText() ; affiche le contenue du clipboard
Code : Tout sélectionner
Debug GetClipboardText() ; affiche le contenue du clipboard
si le curseur est toujours sur la ligne numero 20
Code : Tout sélectionner
envoie_epb(Ligne_de_code.s,#epb_rempl) ; Remplace la ligne en cours (par rapport au curseur)
Code : Tout sélectionner
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)
donc si vous voulez rendre compatible vos outils avec EPB