A telecharger ici :
http://michel.dobro.free.fr/download.php?view.25
pour le fun, je me fait un editeur pour le Pb
je continue ici le lièvre que j'ai soulevé dans le sujet a Droopy
mais avant , voici ou j'en suis a propos de EPB
quelques images valent mieux qu'un long discourt
pour l'instant :
EPB permet de scinder une ligne ou l'on veut grace a " _" (espace+"_") ....... en plus du scindage de Purebasic qui est arrivé apres ....
ex :
Code : Tout sélectionner
OpenWindow(0,0,0,305,140, _
#PB_Window_SystemMenu| _
#PB_Window_ScreenCentered, _
"PureCOLOR Test file 3") _
And CreateGadgetList(WindowID(0))
(menu Convert/deblocker(_) )
permet les Alias ex :
"msg" pour remplacer "a la claire fontaine" ... bon c'est un exemple hein
il a la complétion ,
(meme de vos procedures, et constantes)
une aide succincte pendant l'écriture d'une fonction purebasic
retient automatiquement tout les chemins que vous utilisez
supporte le Drag and Drop
vous permet d'utiliser vos outils fait en Purebasic ou autre
il suffit de déposer votre exe dans le dossier "outils " pour qu'il soit dispo dans le menu de EPB
ne laisse pas le compilateur en permanence en RAM (Pbcompiler dans les taches)
dispose d'un petit convertisseur d'ancien code en Version Purebasic 4.51 (a améliorer)
dispose d'un Dépuncher (pour supprimer les lignes genre:)
Code : Tout sélectionner
if a=34:toto=titi:endif
Code : Tout sélectionner
if a=34
toto=titi
endif
accepte les
;{ et ;} pour les folders
les ;- pour les signets
et meme
;{- toto pour folder+signet
menu popup permet les blocks/deblock de commentaires
Full_coloring
voir image en haut
permet d'activer ou désactiver les librairies utilisateurs par menu dans EPB
voir image en haut
Rappel : des commandes EPB :
$declare
Mettez vos procedures en fin de listing
en debut de listing écrivez : $declare
Vos procedures seront automatiquement declarées par EPB
$include
Sur la ligne en cours , écrivez : $include
Epb vous demandera quels fichier(s) inclure
Le chemin d'inclusion (Absolu) et le nom des fichiers seront insérés dans le listing
par Epb
$r_include
Sur la ligne en cours , écrivez : $r_include
Epb vous demandera quels fichier(s) inclure
Le chemin d'inclusion (relatif) et le nom des fichiers seront insérés dans le listing
par Epb
$catchimage
Sur la ligne en cours, (au début du listing) écrivez : $catchimage
Epb vous demandera quel fichiers image inclures
Epb écrira les inclusions,et la datasection , ou la complétera, si elle existe déjà
$catchsound
Sur la ligne en cours, (au début du listing) écrivez : $catchsound
Epb vous demandera quel fichiers Sons inclures
Epb ecrira les inclusions,et la datasection , ou la completera, si elle existe deja
$catchsprite
Sur la ligne en cours, (au début du listing) écrivez : $catchsprite
Epb vous demandera quel fichiers image_sprite inclures
Epb ecrira les inclusions,et la datasection , ou la complètera, si elle existe deja
$load (le Code in Code)
vous tapez cette commande un openfilerequester s'ouvre pour vous demander quel fichier *.pb *.pbi ou meme txt
le contenu de ce fichier sera inclue a l'emplacement de la commande $load !!
ça permet de pouvoir avoir des bouts de code par fichier et de les inclure physiquement dans le code en cours d'édition
par exemple si vous voulez mettre les lignes de code d'un " include "
vous sélectionnez les lignes concernant l'include
vous tapez $load , et vous chargez l'include en question
celui-ci sera ecrit dans le code en cours
exemple : avant d'avoir ecris $load :
Code : Tout sélectionner
procedure hasard(max)
x=random(max)
ProcedureReturn x
endprocedure
debug hasard(255)
;
; EPb
Code : Tout sélectionner
procedure hasard(max)
x=random(max)
ProcedureReturn x
endprocedure
;**************** start code in code : test_appel_dll.pb *************
CallDebugger
If OpenLibrary(0, "dll_test_x86.dll")
CallFunction(0, "MaFonction")
CloseLibrary(0)
EndIf
;
; EPb
;************************* end code in code *************
debug hasard(255)
;
; EPb
$path
qui permet d’insérer a l'endroit de cette commande un chemin vers un fichier
si dans un code que vous récupérez vous avez ce genre de ligne de code :
Code : Tout sélectionner
LoadSprite(#brush, "2.png",#PB_Sprite_AlphaBlending|#PB_Sprite_Texture)
un openfile requester s'ouvrira , vous n'aurez qu'a pointer le fichier qui doit etre dans cette commandeLoadSprite(#brush, $path,#PB_Sprite_AlphaBlending|#PB_Sprite_Texture)
pour obtenir par exemple ceci :
Code : Tout sélectionner
LoadSprite(#brush,"E:\ExemplePerso\blendman\2.png",#PB_Sprite_AlphaBlending|#PB_Sprite_Texture)
tout ceci est rappelé dans un nouveau menu "Aide EPB"
ps: la commande _block et _endblock qui sert a mettre en forme une portion de code
continue de s'ecrire "_block" et pas "$block" < verrai ça plus tard
Multilingue
il suffit de mettre un fichier de langue.prefs dans le dossier "Langues"
voir dedans pour comprendre
Pilotage possible de l'editeur via un petit prg exemple :
d'abord on initialise la communication avec EPB
Code : Tout sélectionner
; attention , ne pas utiliser la procedure ci dessous (envoie_epb() ) a partir de EPB , cela ne marchera pas !!!
;{- ****Creation du canal de communication avec EPB ********************************
;- structure memoire partagé
Structure Partage
declencheur.b
valeur1.i
message$ {5000}
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
;} *******************************************************************************************
ensuite pour l'utilisation c'est simple :
chaque utilisation de la procedure
;envoie_epb(chaine$,#action) ; permet de demander a EPB de faire une action
voici tout ce qu'on peut faire faire a EPB :
Code : Tout sélectionner
; Utilisation :
; *********************Message de communication *************************************
; cette procedure vous permettra d'envoyer des commandes a EPB
; utile si vous développez un utilitaire, qui aurai besoin de poser un résultat dans EPB
; ****************** exemples d'utilisation **************************************
; envoie_epb("un Petit Message",#epb_pos_curs) ; pose au curseur
; ; *******************************************************************
; ; *******************************************************************
;envoie_epb("Remplace",#epb_rempl) ; Remplace la ligne en cours (par rapport au curseur)
; ; *******************************************************************
; ; *******************************************************************
;envoie_epb("un Petit Message",#epb_insert) ; insert une ligne (par rapport au curseur)
; ; *******************************************************************
; ; *******************************************************************
;Debug GetCurrentDirectory()
;envoie_epb("20",#epb_saut_to_ligne) ; saute a la ligne 20
; ; *******************************************************************
; ; *******************************************************************
;envoie_epb("10",#epb_pos_curs_x) ; positionne le curseur apres le 10eme caratere
; ; *******************************************************************
; ; *******************************************************************
;envoie_epb("5,10",#epb_selection) ; sélectionne apres le 5em caractère sur une longueur de 10 caractère de la ligne en cours
; *******************************************************************
; ; *******************************************************************
; exemple de selection et remplacement :
;envoie_epb("5,10",#epb_selection) ; sélectionne apres le 5em caractere sur une longueur de 10 caractere de la ligne en cours
;envoie_epb("message qui remplace",#epb_rempl_select) ; et remplace par le message
; ; *******************************************************************
; ; *******************************************************************
; récupération de la ligne en cours par le clipboard()
;envoie_epb("",#epb_line_to_clipboard) ; Récupère la ligne en cours, et la met dans le clipboard
;
;Debug GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************************
; ; *******************************************************************
; récupération de la ligne en cours par le clipboard()
;envoie_epb("5,10",#epb_selection) ; sélectionne apres le 5em caractere sur une longueur de 10 caractere de la ligne en cours
;
;envoie_epb("",#epb_select_to_clipboard) ; Récupère la selection en cours, et la met dans le clipboard
;
;Debug GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************************
; ; *******************************************************************
; récupération de l'onglet en cours par le clipboard()
;envoie_epb("8",#epb_onglet_to_clipboard ) ; Récupère le contenu de l'onglet numero 8 (a partir de zero) , et le met dans le clipboard
;
;Debug GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************************
; ; *******************************************************************
; récupération de la selection en cours par le clipboard()
;envoie_epb("",#epb_select_to_clipboard ) ; Récupère la selection en cours, et la met dans le clipboard
;
;Debug GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************************
; ; *******************************************************************
;file$=OpenFileRequester("load pb",Home$,"*.pb",0)
;envoie_epb(file$ ,#epb_load_file) ; creer un onglet, et charger un fichier *.pb
; ; *******************************************************
; ; *******************************************************
; activation de l'onglet X
;envoie_epb("1" ,#epb_active_onglet) ; active l'onglet 1
; ; *******************************************************
; ; *******************************************************
; renvoie le numero de l'onglet (donc de l'editeur ) actuellement Actif
;envoie_epb("" ,#epb_return_onglet ) ; numero de l'onglet actif ?
;
;Debug "actuellement l'onglet actif est le numero :"+GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************
; ******** pour Falsam ********************************************
; ; lance EPB et fait une selection dedans ... puis a partir de ton editeur (pas epb ) lance ce code
; ; 1- exemple de recuperation d'une selection dans l'editeur Actif (l'onglet actif )
; ; 2- puis modification de cette recuperation
; ; 3- puis remplacement de cette recuperation dans l'editeur actif ..
;
; ;1 recup la selection :
; ClearClipboard() ; vide le clipboard
; envoie_epb("",#epb_select_to_clipboard ) ; Récupère la selection en cours de EPB , et la met dans le clipboard
;
; text$=GetClipboardText() ; le contenu de la selection est maintenant dans Text$
; ;2 modifie la recuperation
; text$="ceci a été modifié : "+text$
; ;3 on va remplacer la selection dans EPB
; envoie_epb(text$,#epb_rempl_select)
; ; voila :)
; *****************************************************************
bref ça prends forme