PureGOLO
suite a discution avec un "mordu de logo " limite (integristeniveau syntaxe et comique a ses heures..)
je vous raconterai un de ces quatres ...
je me suis contraint a changer le nom de mon purelogo
il s'appel donc desormais, PureGolo !!
ça n'est pas une revolution de premiere classe , mais cela m'a forcé a changer pas mal de mots dans les 2 docs , et le code ...

je vous raconterai un de ces quatres ...
je me suis contraint a changer le nom de mon purelogo
il s'appel donc desormais, PureGolo !!
ça n'est pas une revolution de premiere classe , mais cela m'a forcé a changer pas mal de mots dans les 2 docs , et le code ...
bon a priori mon acharné du Logo a mis de l'eau dans son vin 
voici donc une nouvelle version de puregolo
ou j'ai ajouté un mode couleur pour l'editeur , moins "gourmand" en temps
puis ajout des commandes
Faire_dossier / make_dir
sauve_image /save_picture
ce qui va permetre de sauver nos oeuvre et eventuellement les retoucher avec un logiciel de dessin !
l'air de rien mon petit programme va peut etre interresser des profs de primaire, car mon GOLO est quand meme moins rébarbatif que le Vrais Logo
et en plus pas beaucoup tourne sur windows !! (peut etre 3 ou 4 )
dites moi si vous avez le temps ce que vous en pensez
dispo ici : http://www.zapaweb.com/clic/script.php? ... o&sncpt=10

voici donc une nouvelle version de puregolo
ou j'ai ajouté un mode couleur pour l'editeur , moins "gourmand" en temps
puis ajout des commandes
Faire_dossier / make_dir
sauve_image /save_picture
ce qui va permetre de sauver nos oeuvre et eventuellement les retoucher avec un logiciel de dessin !
l'air de rien mon petit programme va peut etre interresser des profs de primaire, car mon GOLO est quand meme moins rébarbatif que le Vrais Logo
et en plus pas beaucoup tourne sur windows !! (peut etre 3 ou 4 )
dites moi si vous avez le temps ce que vous en pensez
dispo ici : http://www.zapaweb.com/clic/script.php? ... o&sncpt=10

- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Super génial !
Ptite question perso : as tu utilisé ma lib ?
Ptite question perso : as tu utilisé ma lib ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Merci ! 
ben non !
j'ai utilisé une lib qui s'appelle "SyntaxHighlighting"
tres simple d'utilisation car elle ne comprend que 4 commandes
axées sur la coloration syntaxique , sans faire appel a un fichier exterieur !
genre un exemple pour colorer les chiffres :
SyntaxHighlightingLine(#Editor_0, "caractere a colorer ", "signe de separation", couleur que l'on veut pour ce caracteres, couleur du fond des caractere , taille_fonte, "nom de la fonte ", #CFM_BOLD) <-- le type a la fin
cela donne
bref cela correspondait mieux a mes besoins !
par contre ta lib n'aurai pas ete, car il est impossible de colorer une phrase comme ça avec!
ex : "let a=0"
le zero ne peut pas etre coloré a part car il lui faudrai un espace entre le "=" et lui !!! ....
par contre si l'on ecrit "let a = 0" là on peut colorer les 4 parties de la phrase !!
j'avais pas ce probleme avec la lib SyntaxHighlightingLine
http://www.purearea.net/pb/download/use ... ghting.zip
je lui est meme fait sur le pouce sa doc en CHM
http://michel.dobro.free.fr/bidouilles/ ... ghting.zip
d'ailleurs tu devrai Wrapper sa lib car elle est vraiment pratique !!
je ne voulais surtout pas d'un fichier exterieur,
je trouve que cela devrai etre une option dans ta librairie ,
tu devrai proposer un mode ou l'on puisse configurer les mots clef en interne !
car en principe quelqu'un qui fait un programme un peut serieux , n'aimerai pas trop que tout le monde puisse lire le nom de ses commandes
imagine qu'il y ait des commandes qu'il garde "cachée" pour le debuggage ou autre , avec un fichier externe , fini l'anonyma
dommage car j'aime beaucoup ta lib , je trouve la doc bien faite en plus !
ben non !
j'ai utilisé une lib qui s'appelle "SyntaxHighlighting"
tres simple d'utilisation car elle ne comprend que 4 commandes
axées sur la coloration syntaxique , sans faire appel a un fichier exterieur !
genre un exemple pour colorer les chiffres :
SyntaxHighlightingLine(#Editor_0, "caractere a colorer ", "signe de separation", couleur que l'on veut pour ce caracteres, couleur du fond des caractere , taille_fonte, "nom de la fonte ", #CFM_BOLD) <-- le type a la fin
cela donne
Code : Tout sélectionner
SyntaxHighlightingLine(#Editor_0, "0/1/2/3/4/5/6/7/8/9", "/", RGB($EC,$F2,$0), fond_editor, taille_fonte, "Comic Sans MS", #CFM_BOLD)
par contre ta lib n'aurai pas ete, car il est impossible de colorer une phrase comme ça avec!
ex : "let a=0"
le zero ne peut pas etre coloré a part car il lui faudrai un espace entre le "=" et lui !!! ....
par contre si l'on ecrit "let a = 0" là on peut colorer les 4 parties de la phrase !!
j'avais pas ce probleme avec la lib SyntaxHighlightingLine
http://www.purearea.net/pb/download/use ... ghting.zip
je lui est meme fait sur le pouce sa doc en CHM
http://michel.dobro.free.fr/bidouilles/ ... ghting.zip
d'ailleurs tu devrai Wrapper sa lib car elle est vraiment pratique !!
je ne voulais surtout pas d'un fichier exterieur,
je trouve que cela devrai etre une option dans ta librairie ,
tu devrai proposer un mode ou l'on puisse configurer les mots clef en interne !
car en principe quelqu'un qui fait un programme un peut serieux , n'aimerai pas trop que tout le monde puisse lire le nom de ses commandes
imagine qu'il y ait des commandes qu'il garde "cachée" pour le debuggage ou autre , avec un fichier externe , fini l'anonyma
dommage car j'aime beaucoup ta lib , je trouve la doc bien faite en plus !
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Je l'ai fait ! On peut utiliser des datas pour les mots clés !
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Oups ...
Essaie cet exemple là avec pour mts clefs les data keywords
Essaie cet exemple là avec pour mts clefs les data keywords
Code : Tout sélectionner
Global HighlightOn.b
Procedure.s ApplicationDir()
appdir$ = Space(255)
GetCurrentDirectory_(255, @appdir$)
If Right(appdir$, 1) <> "\" ; si l'adresse ne finit pas par "\"
appdir$ = appdir$ + "\" ; on rajoute le "\"
EndIf
ProcedureReturn appdir$
EndProcedure
;initialisation des variables de coloration syntaxique
;HL_Init_KeyWord(ApplicationDir()+"kw.txt")
HL_Init_KeywordData(?keywords,3)
DataSection
keywords:
Data.s "ADD"
Data.s "VDISK"
Data.s "DELETE"
EndDataSection
HL_Init_Comments(";")
HL_Init_Strings(34)
HL_Color_Strings(0,255,0)
HL_Color_Entiers(255,255,0)
HL_Color_Comments(255,0,255)
HL_Color_Keywords(21,72,124)
HL_Color_Text(128,64,0)
If OpenWindow(0,0,0,800,600,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"EditorGadget") And CreateGadgetList(WindowID(0))
EditorGadget (30,8,8,400,500,#PB_Container_Raised)
CheckBoxGadget(40,10,515,200,20,"Activer la coloration des Strings")
CheckBoxGadget(41,10,535,200,20,"Activer la coloration des MotsClefs")
CheckBoxGadget(42,10,555,200,20,"Activer la coloration des Commentaires")
CheckBoxGadget(43,10,575,200,20,"Activer la coloration des Entiers")
TrackBarGadget(44,220,515,200, 40, 1, 300)
SetGadgetState(44,5)
TextGadget(45,220,555,200,30,"Zoom : 5 / 300",#PB_Text_Center)
Editor_Font(30,"Comic Sans MS")
Editor_FontSize(30,16)
For a=0 To 5
If a=0 Or a=5
Editor_Format(30,#CFM_ITALIC|#CFM_STRIKEOUT)
EndIf
If a=1 Or a=4
Editor_Format(30,#CFM_UNDERLINE|#CFM_BOLD)
EndIf
If a=2 Or a=3
Editor_Format(30,0)
EndIf
AddGadgetItem(30,a,"Line "+Str(a))
Next
Editor_Format(30,0)
ButtonGadget(1,440,10,150,50,"Changer la Couleur de Fond",#PB_Button_MultiLine)
ButtonGadget(2,610,10,150,50,"Changer la Couleur du Texte",#PB_Button_MultiLine)
ButtonGadget(3,440,60,150,50,"Copier le contenu du presse-papiers et la coller à la fin",#PB_Button_MultiLine)
ButtonGadget(4,610,60,150,50,"Retourne la position du curseur (Relative-X-Y)",#PB_Button_MultiLine)
ButtonGadget(5,440,110,150,50,"Couper le contenu du presse-papiers et la coller à la fin",#PB_Button_MultiLine)
ButtonGadget(6,610,110,150,50,"Selection de la ligne 1 à la ligne 3 et Suppression de la Sélection",#PB_Button_MultiLine)
ButtonGadget(7,440,160,150,50,"Undo",#PB_Button_MultiLine)
ButtonGadget(8,610,160,150,50,"Redo",#PB_Button_MultiLine)
ButtonGadget(9,440,210,150,50,"Mettre le focus sur l'éditeur",#PB_Button_MultiLine)
ButtonGadget(10,610,210,150,50,"Activer la coloration syntaxique",#PB_Button_MultiLine)
ButtonGadget(11,440,260,150,50,"Ajout de 100 lignes, descente à la ligne finale puis remontée à la première ligne",#PB_Button_MultiLine)
ButtonGadget(12,610,260,150,50,"Imprimer le contenu du EditorGadget",#PB_Button_MultiLine)
ButtonGadget(13,440,310,150,50,"Coller un texte défini à l'avance",#PB_Button_MultiLine)
ButtonGadget(14,610,310,150,50,"Ouvrir un fichier dans l'EditorGadget",#PB_Button_MultiLine)
ButtonGadget(15,440,360,150,50,"Sauver le contenu de l'EditorGadget",#PB_Button_MultiLine)
; ButtonGadget(16,610,360,150,50,"test16",#PB_Button_MultiLine)
; ButtonGadget(17,440,410,150,50,"test17",#PB_Button_MultiLine)
; ButtonGadget(18,610,410,150,50,"test18",#PB_Button_MultiLine)
; ButtonGadget(19,440,460,150,50,"test19",#PB_Button_MultiLine)
; ButtonGadget(20,610,460,150,50,"test20",#PB_Button_MultiLine)
; ButtonGadget(21,440,510,150,50,"test21",#PB_Button_MultiLine)
; ButtonGadget(22,610,510,150,50,"test22",#PB_Button_MultiLine)
; ButtonGadget(23,440,560,150,40,"test23",#PB_Button_MultiLine)
; ButtonGadget(24,610,560,150,40,"test24",#PB_Button_MultiLine)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID()
Case 1
rgb=RGB(Random(255),Random(255),Random(255))
Editor_ColorBackground(30,rgb)
SetGadgetText(1,"Fond (RGB) : "+Str(Red(rgb))+","+Str(Green(rgb))+","+Str(Blue(rgb)))
Case 2
rgb=RGB(Random(255),Random(255),Random(255))
Editor_ColorText(30,0,1,0,5,rgb)
SetGadgetText(2,"Texte (RGB) : "+Str(Red(rgb))+","+Str(Green(rgb))+","+Str(Blue(rgb)))
;Editor_Locate(30,1,1)
Case 3
Editor_Select(30,1,1,1,-1)
Editor_Copy(30)
Editor_Locate(30,-1,-1)
Editor_Paste(30)
Case 4
pos=Editor_CursorPos(30)
x=Editor_CursorX(30)
y=Editor_CursorY(30)
SetGadgetText(4,"Position : Pos-"+Str(pos)+" - X-"+Str(x)+" - Y-"+Str(y))
Case 5
Editor_Select(30,1,1,1,-1)
Editor_Cut(30)
Editor_Locate(30,-1,-1)
Editor_Paste(30)
Case 6
Editor_Select(30,1,1,3,-1)
Editor_DeleteSel(30)
Case 7
Editor_Undo(30)
Case 8
Editor_Redo(30)
Case 9
Editor_Activate(30)
Case 10
If HighlightOn=1
HighlightOn=0
SetGadgetText(10,"Activer la coloration syntaxique")
Else
HighlightOn=1
SetGadgetText(10,"Désactiver la coloration syntaxique")
EndIf
Case 11
For i = 0 To 100
AddGadgetItem(30,-1,"Ligne "+RSet(Str(i),4,"0"))
Editor_Down(30)
Delay(40)
While WindowEvent():Wend
Next i
For i = 0 To 100
Editor_Up(30)
Delay(100)
While WindowEvent():Wend
Next i
Case 12
Editor_Print(30,"Test d'impression par la librairie LibEditorPlus")
Case 13
Editor_PasteText(30, "PureBasic, c'est trés fort ! Utilisez LibEditorPlus !")
Case 14
file$=OpenFileRequester("Choisir le fichier à ouvrir dans l'EditorGadget","","All files (*.*)|*.*",0)
If file$
Editor_OFile(30,file$,"Erreur de fichier")
Else
MessageRequester("Information", "Vous devez choisir un fichier à ouvrir.", 0)
EndIf
Case 15
Case 16
MessageRequester("",Str(Editor_CursorX(30)),#PB_MessageRequester_Ok)
; Case 17
; Case 18
; Case 19
; Case 20
; Case 21
; Case 22
; Case 23
; Case 24
Case 44
Rtr=Editor_Zoom(30,GetGadgetState(44),300)
SetGadgetText(45, "Zoom : "+Str(GetGadgetState(44))+" / 300")
If Rtr=0
Debug "Erreur : Impossible de Zoomer"
EndIf
EndSelect
EndIf
New.s=GetGadgetText(30)
If HighlightOn=1
If new.s<>old.s
Editor_Highlight(30)
old=new
; Editor_Color(30,RGB(128,64,0))
EndIf
If GetGadgetState(40)=1
test=HL_Activate_Strings(1)
Else
test=HL_Activate_Strings(0)
EndIf
If GetGadgetState(41)=1
test1=HL_Activate_Keywords(1)
Else
test1=HL_Activate_Keywords(0)
EndIf
If GetGadgetState(42)=1
test2=HL_Activate_Comments(1)
Else
test2=HL_Activate_Comments(0)
EndIf
If GetGadgetState(43)=1
test3=HL_Activate_Entiers(1)
Else
test3=HL_Activate_Entiers(0)
EndIf
EndIf
Until EventID=#PB_Event_CloseWindow
End
EndIf Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
nouvelle version !
avec un changement dans le code PureGolo , apparition des virgules pour les parametres !
dispo ici : http://www.zapaweb.com/clic/script.php? ... o&sncpt=10
rajout de la commande pos_tortue, qui renvoie ses coordonées
utile pour eviter qu'elle ne sorte de l'ecran !
rajout de la gestion des touches flechés , espace et return , qui permetront
au tout petit (5,6ans) de diriger la tortue avec les touches du clavier ! ..
correction de petit bugs residuel et inerant a ma façon de programmer
(j'utilise un Dés et en fonction du chiffre, je prend une commande purebasic
et je l'ecrit dans l'editeur Japbe (que j'ai trouvé par hasard aussi)
quelque fois je mets des gans de box pour tapper au clavier , cela donne des choses interressantes comme le programme présenté ici-meme
de toutes façon je peux bien ecrire n'importe quoi , tout le monde s'en tappe et j'e sais bien que personne ne sera assez debile pour lire cette phrase j'usqu'au bout !
, ou bien alors, vous avez vraiment rien d'autre a faire ! que de lire mes bétises !
) Merci quand meme ...
avec un changement dans le code PureGolo , apparition des virgules pour les parametres !
dispo ici : http://www.zapaweb.com/clic/script.php? ... o&sncpt=10
rajout de la commande pos_tortue, qui renvoie ses coordonées
utile pour eviter qu'elle ne sorte de l'ecran !
rajout de la gestion des touches flechés , espace et return , qui permetront
au tout petit (5,6ans) de diriger la tortue avec les touches du clavier ! ..
correction de petit bugs residuel et inerant a ma façon de programmer
(j'utilise un Dés et en fonction du chiffre, je prend une commande purebasic
et je l'ecrit dans l'editeur Japbe (que j'ai trouvé par hasard aussi)
quelque fois je mets des gans de box pour tapper au clavier , cela donne des choses interressantes comme le programme présenté ici-meme
de toutes façon je peux bien ecrire n'importe quoi , tout le monde s'en tappe et j'e sais bien que personne ne sera assez debile pour lire cette phrase j'usqu'au bout !
Dernière modification par Backup le dim. 18/sept./2005 10:47, modifié 1 fois.
-
Frenchy Pilou
- Messages : 2194
- Inscription : jeu. 27/janv./2005 19:07
http://www.zapaweb.com/clic/script.php? ... o&sncpt=10
nouvelle version !
avec meilleurs appel des procedures qui s'appelle elle meme
Merci a Fweil donc les explications m'on pousse a arranger un peut la chose !
nouvelle version !
avec meilleurs appel des procedures qui s'appelle elle meme
Merci a Fweil donc les explications m'on pousse a arranger un peut la chose !