Page 1 sur 2

coloration syntaxique de l'editeur !!

Publié : jeu. 01/sept./2005 11:10
par Backup
.....

Publié : dim. 14/janv./2007 0:54
par MetalOS
Salut dobro, cette lib m'interesse fortement mais le lien que tu à mis est mort. peut tu me dir ou je peut trouver cette lib ? Merci.

Publié : dim. 14/janv./2007 1:03
par MetalOS
C bon g trouver Dobro tu t'est planter sur le lien, c plus ca si je peut me permetre.

http://michel.dobro.free.fr/bidouilles/ ... source.zip

Publié : dim. 14/janv./2007 10:37
par Backup
ha ben je viens juste de corriger :lol:

Merci ... :D

c'est cette lib que j'utilise pour mon "pureGolo" :D

Publié : dim. 14/janv./2007 11:48
par MetalOS
Ben moi je l'utilise dans mon editeur html mais le probleme quand j'utilise la molette de la souris pour naviger dans ma source html le prog par en vrie, le contenue de mon Editor Gadget devient fou, et je ne c pas pourquoi ?

Publié : dim. 14/janv./2007 14:40
par Backup
MetalOS a écrit :Ben moi je l'utilise dans mon editeur html mais le probleme quand j'utilise la molette de la souris pour naviger dans ma source html le prog par en vrie, le contenue de mon Editor Gadget devient fou, et je ne c pas pourquoi ?
cela n'a rien a voir avec la Lib !

je pense que tu gère mal tes événements !

dans mon éditeur pureGolo a chaque événement de l'éditeur gadget
je réaffiche le contenu de l'éditeur (et donc sa coloration)
tu peux utiliser un callback pour le redessin par exemple :D

Publié : dim. 14/janv./2007 15:38
par MetalOS
Voici comment j'utilise la lib dans mon code, c peut être pas juste et c pour ca que ca plante chez moi.

Code : Tout sélectionner

;********************************************* 
; Source By MetalOS 
; Utilisation de l'user lib SyntaxHighlighting 
; Code pour PB 4.00 
;********************************************* 
Enumeration 
  #Window_0 
EndEnumeration 

Enumeration 
  #Editor_0 
  #Text_0 
EndEnumeration 


Procedure Open_Window_0() 
  If OpenWindow(#Window_0, 216, 0, 350, 292, "Colorisation syntaxique",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) 
    If CreateGadgetList(WindowID(#Window_0)) 
      EditorGadget(#Editor_0, 15, 55, 315, 215) 
      TextGadget(#Text_0, 5, 5, 335, 35, "Exemple de colorisation syntaxique avec la lib SyntaxHighlighting") 
      
    EndIf 
  EndIf 
EndProcedure 



Open_Window_0() 

Repeat 
  
  Event = WaitWindowEvent() 
  
  WindowID = EventWindow() 
  
  GadgetID = EventGadget() 
  
  EventType = EventType() 
  
  
  
  If Event = #PB_Event_Gadget 
    
    If GadgetID = #Editor_0 
      ;Code de la colorisation 
       ClearHighlightingAll(0, RGB(0, 0, 0), 8, "Georgia", 0) 
       SyntaxHighlightingAll(0, "html|HTML|/html|/HTML|title|TITLE|/title|/TITLE|/HEAD|head|/head|HEAD", "|", RGB(255, 0, 0), RGB(255, 255, 255), 8, "Georgia", 0) 
       SyntaxHighlightingAll(0, "body|BODY|/body|/BODY|body|BODY", "|", RGB(255, 0, 0), RGB(255, 255, 255), 8, "Georgia", 0) 
       SyntaxHighlightingAll(0, "abbr|ABBR|/abbr|/ABBR|acronym|ACRONYM|/acronym|/ACRONYM|address|ADDRESS|/address|/ADDRESS", "|", RGB(0, 0, 255), RGB(255, 255, 255), 8, "Georgia", 0) 
       SyntaxHighlightingAll(0, "<>|/0/1/2/3/4/5/6/7/8/9", "/", RGB(0, 0, 255), RGB(255, 255, 255), 8, "Georgia", 0) 
       HideGadget(0, 0) 
      ;fin fu code dee la colorisation 
    EndIf 
    
  EndIf 
  
Until Event = #PB_Event_CloseWindow 

End 

Publié : dim. 14/janv./2007 16:14
par Backup
Normal tu n'utilise pas la bonne fonction :lol:

il te faut ultiliser SyntaxHighlightingLine

car SyntaxHighlightingALL sert a recolorer l'ensemble de l'editeur !!
donc le scrool que tu voyais, c'est parcequ'il commencait a recolorer le debut puis jusqu'a la fin de ton text :D


en utilisant la fonction


SyntaxHighlightingLine


tu ne colore Que la ligne en cour !! :D





;*********************************************
; Source By MetalOS
; Utilisation de l'user lib SyntaxHighlighting
; Code pour PB 4.00
;*********************************************
Enumeration
     #Window_0
EndEnumeration

Enumeration
     #Editor_0
     #Text_0
EndEnumeration


Procedure Open_Window_0()
     If OpenWindow ( #Window_0 , 216, 0, 350, 292, "Colorisation syntaxique" , #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
         If CreateGadgetList ( WindowID ( #Window_0 ))
             EditorGadget ( #Editor_0 , 15, 55, 315, 215)
             TextGadget ( #Text_0 , 5, 5, 335, 35, "Exemple de colorisation syntaxique avec la lib SyntaxHighlighting" )
            
         EndIf
     EndIf
EndProcedure



Open_Window_0()

Repeat
    
    Event = WaitWindowEvent ()
    
     WindowID = EventWindow ()
    
     GadgetID = EventGadget ()
    
     EventType = EventType ()
    
    
    
     If Event = #PB_Event_Gadget
        
         If GadgetID = #Editor_0
             ;Code de la colorisation
             ClearHighlightingLine (0, RGB (0, 0, 0), 8, "Georgia" , 0)
             SyntaxHighlightingLine (0, "html|HTML|/html|/HTML|title|TITLE|/title|/TITLE|/HEAD|head|/head|HEAD" , "|" , RGB (255, 0, 0), RGB (255, 255, 255), 8, "Georgia" , 0)
             SyntaxHighlightingLine (0, "body|BODY|/body|/BODY|body|BODY" , "|" , RGB (255, 0, 0), RGB (255, 255, 255), 8, "Georgia" , 0)
             SyntaxHighlightingLine (0, "abbr|ABBR|/abbr|/ABBR|acronym|ACRONYM|/acronym|/ACRONYM|address|ADDRESS|/address|/ADDRESS" , "|" , RGB (0, 0, 255), RGB (255, 255, 255), 8, "Georgia" , 0)
             SyntaxHighlightingLine (0, "<>|/0/1/2/3/4/5/6/7/8/9" , "/" , RGB (0, 0, 255), RGB (255, 255, 255), 8, "Georgia" , 0)
             HideGadget (0, 0)
             ;fin fu code dee la colorisation
         EndIf
        
     EndIf
    
    
    
Until Event = #PB_Event_CloseWindow

End

Publié : dim. 14/janv./2007 18:12
par MetalOS
Oui mais si j'ouvre dans mon application un source html la colorisation de toute les lignes ne ce fait pas, sauf si je pointe mon curseur sur la ligne concernée.

Publié : dim. 14/janv./2007 19:22
par MetalOS
Parcontre le curseur clignote asser rapidement quand j'ecrit le mot qu'il va colorer, c normale ?

Publié : dim. 14/janv./2007 19:38
par Backup
lit les commentaire de ce code :D




;*********************************************
; Source By MetalOS
; Utilisation de l'user lib SyntaxHighlighting
; Code pour PB 4.00
;*********************************************
Enumeration
     #Window_0
EndEnumeration

Enumeration
     #Editor_0
     #Text_0
EndEnumeration


Procedure Open_Window_0()
     If OpenWindow ( #Window_0 , 216, 0, 350, 292, "Colorisation syntaxique" , #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
         If CreateGadgetList ( WindowID ( #Window_0 ))
             EditorGadget ( #Editor_0 , 15, 55, 315, 215)
             TextGadget ( #Text_0 , 5, 5, 335, 35, "Exemple de colorisation syntaxique avec la lib SyntaxHighlighting" )
            
         EndIf
     EndIf
EndProcedure



Open_Window_0()

; a faire une fois apres le chargement de ta page ! -<<<<<<<<<<<<<<<< DOBRO
ClearHighlightingAll (0, RGB (0, 0, 0), 8, "Georgia" , 0)
SyntaxHighlightingAll (0, "html|HTML|/html|/HTML|title|TITLE|/title|/TITLE|/HEAD|head|/head|HEAD" , "|" , RGB (255, 0, 0), RGB (255, 255, 255), 8, "Georgia" , 0)
SyntaxHighlightingAll (0, "body|BODY|/body|/BODY|body|BODY" , "|" , RGB (255, 0, 0), RGB (255, 255, 255), 8, "Georgia" , 0)
SyntaxHighlightingAll (0, "abbr|ABBR|/abbr|/ABBR|acronym|ACRONYM|/acronym|/ACRONYM|address|ADDRESS|/address|/ADDRESS" , "|" , RGB (0, 0, 255), RGB (255, 255, 255), 8, "Georgia" , 0)
SyntaxHighlightingAll (0, "<>|/0/1/2/3/4/5/6/7/8/9" , "/" , RGB (0, 0, 255), RGB (255, 255, 255), 8, "Georgia" , 0)
HideGadget (0, 0)



Repeat
    
    Event = WaitWindowEvent ()
    
     WindowID = EventWindow ()
    
     GadgetID = EventGadget ()
    
     EventType = EventType ()
    
    
    
     If Event = #PB_Event_Gadget
        
         If GadgetID = #Editor_0
         
         EndIf
        
     EndIf
     ; en fin de Boucle ça suffit !
     ; ne pas metre dans l'event editeur !! sinon il colorie en permanence ! <<<<<<<< DOBRO
     ;Code de la colorisation
     ClearHighlightingLine (0, RGB (0, 0, 0), 8, "Georgia" , 0)
     SyntaxHighlightingLine (0, "html|HTML|/html|/HTML|title|TITLE|/title|/TITLE|/HEAD|head|/head|HEAD" , "|" , RGB (255, 0, 0), RGB (255, 255, 255), 8, "Georgia" , 0)
     SyntaxHighlightingLine (0, "body|BODY|/body|/BODY|body|BODY" , "|" , RGB (255, 0, 0), RGB (255, 255, 255), 8, "Georgia" , 0)
     SyntaxHighlightingLine (0, "abbr|ABBR|/abbr|/ABBR|acronym|ACRONYM|/acronym|/ACRONYM|address|ADDRESS|/address|/ADDRESS" , "|" , RGB (0, 0, 255), RGB (255, 255, 255), 8, "Georgia" , 0)
     SyntaxHighlightingLine (0, "<>|/0/1/2/3/4/5/6/7/8/9" , "/" , RGB (0, 0, 255), RGB (255, 255, 255), 8, "Georgia" , 0)
     HideGadget (0, 0)
     ;fin fu code dee la colorisation
    
Until Event = #PB_Event_CloseWindow

End


Publié : dim. 14/janv./2007 19:44
par Backup
MetalOS a écrit :Oui mais si j'ouvre dans mon application un source html la colorisation de toute les lignes ne ce fait pas, sauf si je pointe mon curseur sur la ligne concernée.
comme expliqué dans l'exemple du dessus

la fonction SyntaxHighlightingAll ne sert qu'a coloré l'editeur dans son ensemble
donc tu l'execute une seule fois apres le chargement de ta page !
Parcontre le curseur clignote asser rapidement quand j'ecrit le mot qu'il va colorer, c normale ?
c'est parceque les fonctions "SyntaxHighlightingLine"
etaient executées dans l'event de l'editeur
donc executé a chaque caracteres entré !

le fait de la mettre a la fin de la boucle devrai permetre d'eviter l'execution permanente :D

Publié : dim. 14/janv./2007 20:34
par flaith
Flype avait fait un programme montrant la coloration syntaxique du SQL ici : http://www.purebasic.fr/french/viewtopic.php?t=4849

Le lien du fichier zip ne fonctionnant plus et comme j'avais déjà les sources j'ai mis le zip sur mon site ici : http://flaith.free.fr/My_files/PB/Richedit_SQL.zip

Publié : dim. 14/janv./2007 23:56
par Flype
bien vu,

par contre mon source est toujours dispo sur ma page :
http://www.purebasic.fr/french/viewtopic.php?t=5075

-> tout en bas, richedit_mysql.zip

Publié : lun. 15/janv./2007 0:54
par flaith
:D

cela serait bien de rajouter ton lien dans http://www.purebasic.fr/french/viewtopic.php?t=1498