coloration syntaxique de l'editeur !!

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

coloration syntaxique de l'editeur !!

Message par Backup »

.....
Dernière modification par Backup le mar. 19/août/2014 14:54, modifié 3 fois.
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Message 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.
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ha ben je viens juste de corriger :lol:

Merci ... :D

c'est cette lib que j'utilise pour mon "pureGolo" :D
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Message 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 ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Message 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 
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Message 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.
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Message par MetalOS »

Parcontre le curseur clignote asser rapidement quand j'ecrit le mot qu'il va colorer, c normale ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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

Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message 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
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Image
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

:D

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