Page 1 sur 1

Un truc éventuellement utile pour jaPBe

Publié : mer. 24/mai/2006 12:10
par Flype
juste pour le fun j'ai fais çà l'autre jour.
çà pourrait être intéressant d'avoir dans jaPBe un onglet 'modèles' comme dans l'IDE purebasic. Mais ce serait encore mieux si les 2 utilisaient la même base (le même fichier). à méditer ;-)

Code : Tout sélectionner

; Lit le fichier 'templates' (modèles) de PureBasic 4.0

Structure PB_TEMPLATE
  name.s
  code.s
  comment.s
EndStructure

Procedure.l ReadPureBasicTemplates(gadget.l)
 
  Protected file.l, depth.l, result.l, line.s, value.s, *item.PB_TEMPLATE
 
  If IsGadget(gadget)
   
    file = ReadFile(#PB_Any, #PB_Compiler_Home + "Templates.prefs")
   
    If file
     
      While Eof(file) = #False
       
        line  = ReadString(file)
        value = Trim(StringField(line, 2, ":"))
       
        Select Trim(StringField(line, 1, ":"))
         
          Case "TEMPLATES"
            If value = "1.0"
              result = #True
            Else
              Break
            EndIf
           
          Case "Directory"
            AddGadgetItem(gadget, -1, value, 0, depth)
            depth + 1
           
          Case "Expanded"
            SetGadgetItemState(gadget, CountGadgetItems(gadget)-1, #PB_Tree_Expanded)
           
          Case "Template"
            *item = AllocateMemory(SizeOf(PB_TEMPLATE))
            If *item
              *item\name = value
              AddGadgetItem(gadget, -1, *item\name, 0, depth)
              SetGadgetItemData(gadget, CountGadgetItems(gadget)-1, *item)
            EndIf
           
          Case "Comment"
            *item\comment = ReplaceString(value, "\n", #CRLF$)
           
          Case "Code"
            *item\code = ReplaceString(value, "\n", #CRLF$)
           
          Case "CloseDirectory"
            depth - 1
           
        EndSelect
       
      Wend
     
      CloseFile(file)
     
    EndIf
   
  EndIf
 
  ProcedureReturn result
 
EndProcedure

Procedure.l Main()
 
  If OpenWindow(0, 0, 0, 320, 400, "PureBasic Templates", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
   
    If CreateGadgetList(WindowID(0))
      TreeGadget(0, 5, 5, 310, 390, #PB_Tree_AlwaysShowSelection)
    EndIf
   
    ReadPureBasicTemplates(0)
   
    Repeat
     
      Select WaitWindowEvent()
       
        Case #PB_Event_CloseWindow
          Break
         
        Case #PB_Event_Gadget
          If EventType() = #PB_EventType_Change
            *item.PB_TEMPLATE = GetGadgetItemData(0, GetGadgetState(0))
            If *item
              Debug *item\name
              Debug *item\comment
              Debug *item\code
            EndIf
          EndIf
         
      EndSelect
     
    ForEver
   
  EndIf
 
EndProcedure

Main() 

Re: Un truc éventuellement utile pour jaPBe

Publié : mer. 24/mai/2006 12:35
par gnozal
Flype a écrit :juste pour le fun j'ai fais çà l'autre jour.
çà pourrait être intéressant d'avoir dans jaPBe un onglet 'modèles' comme dans l'IDE purebasic. Mais ce serait encore mieux si les 2 utilisaient la même base (le même fichier).
Je n'ai pas encore utilisé cette fonctionnalité. Un template, c'est un modèle/exemple de code, c'est çà ?
Personnellement, j'ai tous mes exemples de code glanés dans les divers forums sous forme de fichiers distincts (avec des noms de fichiers informatifs) dans une seule archive ZIP. Il me reste ensuite à rechercher dans cette archive les codes intéressants par mots clés (nom du fichier et/ou contenu du fichier).
Flype a écrit :à méditer ;-)
:D

Publié : mer. 24/mai/2006 14:54
par Flype
les 'templates' c'est çà. perso je trouve çà très utile.
tu doubles-clique sur un item dans la liste et la fonction s'insére dans le source en cours...

Image

Publié : mer. 24/mai/2006 15:53
par gnozal
Flype a écrit :les 'templates' c'est çà. perso je trouve çà très utile.
tu doubles-clique sur un item dans la liste et la fonction s'insére dans le source en cours...
Ok !
Oui, çà a l'air utile.