Accès rapide aux fichiers de CodeArchiv

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Accès rapide aux fichiers de CodeArchiv

Message par Chris »

Un petit essai, en partant du morceau de code pas terminé que j'ai posté hier dans ToolBar + ComboBox.

Le but du truc, est donc d'avoir, dans un combo situé dans la barre d'outils de l'éditeur, le dossier CodeArchiv, pour pouvoir acceder plus rapidement au fichiers.
Il faut donc avoir CodeArchiv !

Bon, pour le moment, c'est pas encore tellement exploitable, dans la mesure ou il manque pas mal de trucs.
- Il n'y a pas d'icônes dans le combo
- Il faut mettre le chemin du dossier CodeArchiv "à la main" dans le code
- On ne détecte toujours pas l'éditeur utilisé, je verrais ça plus tard. I faut donc mettre 1 pour l'utiliser avec jaPBe, et 2 pour l'utiliser avec PureBasic.
- Il n'y a pas de boite qui affiche les fichiers contenus dans le dossier choisi, j'ai donc mis un OpenFileRequester().
- Il n'y a pas de création automatique d'un nouvel onglet dans l'éditeur. Il faut donc ouvrir le fichier avec le bouton droit en utilisant "Ouvrir avec"
etc...etc...

Bref, il manque encore plein de trucs.

Chez moi, ça na pas encore réussi à faire planter quoi que ce soit.
Il suffit de la lancer depuis l'éditeur, pas besoin de créer un executable.

Si quelqu'un veut le tester, pour me dire ce qu'il pense de l'idée.

Code : Tout sélectionner

;- Constantes
Enumeration
  #NewWindow
EndEnumeration

Enumeration
  #NewCombo = 100
  #Btn_Quit
EndEnumeration

#JaPBe = 1
#PureBasic = 2

#CB_GETCOMBOBOXINFO = $00164

;- Repertoire ou se trouve le dossier CodeArchiv
Repertoire$ = "D:\PureBasic390\CodeArchiv\"

;- Structures
Structure REPERTOIRE
  Rep.s
  Nom.s
  Fic.s
EndStructure
NewList Repertoire.REPERTOIRE()

;- Procedures
Procedure.l ListFiles( dir.s )
  dir = Trim(dir)
  If Right(dir,1)="\":dir = Left(dir,Len(dir)-1):EndIf
  
  Static num.l 
  id.l = ExamineDirectory( #PB_Any, dir, "*.*" ) 
  Repeat 
    type.l = NextDirectoryEntry()
    name.s = DirectoryEntryName()
    AddElement(Repertoire())
    full.s = dir + "\" + name 
    
    Select type 
      Case 1 : num + 1: 
        If GetExtensionPart(full) = "pb"
          Repertoire()\Fic = GetFilePart(full) ; Nom du fichier
        EndIf
        
      Case 2 
        If name <> ".." And name <> "." 
          Repertoire()\Nom = name             ; Nom du dossier pour l'affichage
          Repertoire()\Rep = full+"\"         ; Chemin du dossier pour l'acces aux fichiers
          ListFiles( full ) : UseDirectory( id ) 
        EndIf 
    EndSelect 
  Until type = 0
EndProcedure 

;- Variables
Style = #DDL_ARCHIVE|#DDL_DIRECTORY|#DDL_EXCLUSIVE|#DDL_HIDDEN|#DDL_READONLY|#DDL_READWRITE|#DDL_SYSTEM
;- Variables globales
Global hWnd

;- Choix de l'éditeur : 1 pour jaPBe, ou 2 pour PureBasic
Editeur = 1 ; Choisir 1 ou 2 selon l'éditeur avec lequel on lance le programme

;- Détection de la barre d'outils de l'éditeur
Buffer.s = Space(255)
Select Editeur
  Case #JaPBe         ; Editeur jaPBe : 1
    hMain = FindWindow_("WindowClass_7","jaPBe")
    hToolBar = FindWindowEx_(hMain,#Null,"ToolbarWindow32","")
    
  Case #PureBasic     ; Editeur PureBasic : 2
    hMain = FindWindow_("WindowClass_0",#Null)
    GetWindowText_(hMain,@Buffer,255)
    If Left(Buffer,9) = "PureBasic"
      hToolBar = FindWindowEx_(hMain,#Null,"ToolbarWindow32","")
    EndIf
EndSelect


;- On crée une fenêtre PopUp qui vient se superposer à la barre d'outils
;- et on met un ComboBox à l'intérieur
hWnd = OpenWindow(#NewWindow,600,0,240,20,#WS_POPUP ,"")

If CreateGadgetList(hWnd)
  hCombo = ComboBoxGadget(#NewCombo,0,0,220,200)
  hBntQuit = ButtonGadget(#Btn_Quit,220,0,20,20,"X")
EndIf

;- On déclare la nouvelle fenêtre comme "Fille" de la barre d'outils
SetParent_(hWnd,hToolBar)

ListFiles(Repertoire$)

ForEach Repertoire()
  Nom.s =Repertoire()\Nom
  If Nom <> ""
    AddGadgetItem(#NewCombo,-1,Nom)
  EndIf
Next
SetGadgetState(#NewCombo,0)
;- Boucle des évènements
Repeat
  Select WindowEvent()
    Case #PB_EventGadget
      Select EventGadgetID()
        Case #NewCombo
          If EventType() = #PB_EventType_RightClick
            N$= GetGadgetItemText(#NewCombo,GetGadgetState(#NewCombo),0)
            ForEach Repertoire()
              If Repertoire()\Nom = N$
                chemin$ = Repertoire()\Rep
                OpenFileRequester("",chemin$,"*.pb",0)
              EndIf
            Next
            
          EndIf
          
        Case #Btn_Quit : quit = #True
          
      EndSelect
      
;       ;- Pour le moment, comme on a pas de bouton pour quitter, on cliques 
;       ;- dans le combo, et on quitte avec "Escape"
;     Case #WM_KEYDOWN
;       Select EventwParam()
;         Case $1B : quit = #True
;       EndSelect
  EndSelect
Until quit 
End
Pour l'arreter, il y a un bouton au bout du combo.

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

Message par Backup »

faudrai faire ça mais pour acceder eventuellement au codeFR sur le net !! ??
possible ça ? :)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Avec PureBasic, tout est possible ! 8)

Chris :)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Je trouve l'idée intéressante, même très intéressante.

Moi je n'ai pas encore créé de dossier CodeArchiv, mais je vais le faire.

Sinon, je pense qu'il faudrait installer une clef dans la base de registre indiquant le chemin du Dossier, cela pourrait être une procédure de ton code ou chacun renseignerait le chemin, puis il suffirait ensuite de lire la clef pour déterminer le chemin par programme.

@Dobro :

T'as raisssssssson :D
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Chris a écrit :Avec PureBasic, tout est possible ! 8)

Chris :)
Et c"est ce qui me plait dans PureBasic, grâce à Mr Fred :)
"Qui baise trop bouffe un poil." P. Desproges
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

Message par ZapMan »

@KarlKox

Tant que je te tiens : tu n'a pas exprimé ton avis sur SoundEditor. Comme tu es branché music et plutôt musclé en programmation, j'aimerai bien !
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Denis a écrit :@Dobro :T'as raisssssssson :D

Pour une fois ! :D
Répondre