PureGOLO

Programmation d'applications complexes
Avatar de l’utilisateur
Morsula
Messages : 72
Inscription : dim. 20/mars/2005 16:38
Localisation : Strasbourg
Contact :

Message par Morsula »

J'ai jeté un coup d'oeil à la doc en anglais, je pense que ça passe :P enfin du moins moi j'arrive à la comprendre en gros, bah oui je suis pas encore un expert en anglais :lol:
Morsula
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Merci ! :D

tu dois etre plus expert que moi de toutes façons ! :lol:
Avatar de l’utilisateur
Morsula
Messages : 72
Inscription : dim. 20/mars/2005 16:38
Localisation : Strasbourg
Contact :

Message par Morsula »

Bah l'année dernière j'avais quoi déja en anglais... 16 de moyenne mais bon ça veut rien dire... fin 3ième j'avais à peine un 8 de moyenne en anglais.

Quoi qu'il en soit c'est sacrément utile l'anglais pour ce faire comprendre dans le monde et surtout pour l'informatique.
Morsula
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

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

Message par Backup »

bon a priori mon acharné du Logo a mis de l'eau dans son vin :D


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 :D
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 :D

dispo ici : http://www.zapaweb.com/clic/script.php? ... o&sncpt=10


Image
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Super génial !

Ptite question perso : as tu utilisé ma lib ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Merci ! :D


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 :D

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)
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 :D
http://michel.dobro.free.fr/bidouilles/ ... ghting.zip

d'ailleurs tu devrai Wrapper sa lib car elle est vraiment pratique !! :D
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 :D

dommage car j'aime beaucoup ta lib , je trouve la doc bien faite en plus ! :D
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Je l'ai fait ! On peut utiliser des datas pour les mots clés !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Je l'ai fait ! On peut utiliser des datas pour les mots clés !
super ! t'es un choux ! :D

Mais t'as pas mis ta doc a jour ?? 8O :)
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Oups ...

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

Message par Backup »

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

Message par Backup »

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 ! :D , ou bien alors, vous avez vraiment rien d'autre a faire ! que de lire mes bétises ! :lol: :lol: :lol: :lol: ) Merci quand meme ...
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

Message par Frenchy Pilou »

On lit tout juqu'au bout ! :D
Est beau ce qui plaît sans concept :)
Speedy Galerie
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Dobro a écrit :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 ! :D , ou bien alors, vous avez vraiment rien d'autre a faire ! que de lire mes bétises ! :lol: :lol: :lol: :lol: ) Merci quand meme ...
:lol: :lol: :lol: :lol:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

http://www.zapaweb.com/clic/script.php? ... o&sncpt=10

nouvelle version !

avec meilleurs appel des procedures qui s'appelle elle meme :D
Merci a Fweil donc les explications m'on pousse a arranger un peut la chose ! :D
Répondre