Cherche les bons gadgets

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Cherche les bons gadgets

Message par SPH »

Salut,

je dois carrosser mon "html maker". Mais je n'ai jamais fait de gadgets (je suis 100% debutant). De plus, je ne suis pas designer. Donc, j'ai copié le design d'un logiciel.
Voici ce que je voudrais :

Image

Ici, il y a 1 image et 3 gadgets mais je n'ai pas trouvé leur equivalent en PB.

Pourriez vous eclairer ma lanterne ? :oops:

THX
Image

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Cherche les bons gadgets

Message par Ar-S »

De ce que tu montres je vois :
Imagegadget + buttongadget + ExplorerComboGadget + ExplorerListGadget/ExplorerTreeGadget + ListViewGadget
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Cherche les bons gadgets

Message par SPH »

Merci, je regarde... 8)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Cherche les bons gadgets

Message par Ar-S »

buttongadget => ButtonImageGadget
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Cherche les bons gadgets

Message par SPH »

Bon, j'ai choisi une image gadget et 2 gadgets pour lister des fichiers :
- ExplorerTreeGadget
- ListViewGadget

Je pense qu'avec ces deux gadgets, on peux parcourir les repertoires et afficher des fichiers.

Voila ou j'en suis :

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 749, 470, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  If LoadImage(0, "c:\SPH\PB\titre.bmp")    ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image
      ImageGadget(0,  10, 10, 728, 53, ImageID(0))                      ; imagegadget standard
  EndIf
    
  ExplorerTreeGadget(1, 10, 73, 360, 300, "*.pb;*.pbi")
 
  
  ListViewGadget(2,376,73,360,300)
    For a=1 To 12
      AddGadgetItem (2,-1,"Elément "+Str(a)+" de la boîte à liste")   ; défini le contenu de la boîte de liste
    Next
    SetGadgetState(2,9)    ; sélectionne le dixième élément (la numérotation commmence à 0)
    
    
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
    
EndIf

End
Je n'ai pas compris ce qu'etait les "*.pb;*.pbi" de ExplorerTreeGadget(1, 10, 73, 360, 300, "*.pb;*.pbi")

Enfin, je n'arrive pas a afficher les fichiers images dans le listviewgadget !

Merci pour vos reponses :?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Cherche les bons gadgets

Message par Ar-S »

Je te conseils déjà d'utiliser les énumérations pour clarifier tes fenêtre gadget et images.
Ce sera beaucoup plus claire.

Ensuite ton explorerTri va te servir à te placer dans le dossier voulu.
Mais il faut que tu lui indiques ^^

Code : Tout sélectionner

Enumeration FENGAD
  #FEN
  #IM_GAD
  #EXPLOR_GAD
  #LIST_GAD
EndEnumeration

Enumeration MESIMAGES
  #titre
EndEnumeration


If OpenWindow(#FEN, 0, 0, 749, 470, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 
  If LoadImage(#titre, "c:\SPH\PB\titre.bmp")    ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image
      ImageGadget(#IM_GAD,  10, 10, 728, 53, ImageID(#titre))                      ; imagegadget standard
  EndIf
   
  ExplorerTreeGadget(#EXPLOR_GAD, 10, 73, 360, 300, "*.pb;*.pbi")

 
  ListViewGadget(#LIST_GAD,376,73,360,300)
    For a=1 To 12
      AddGadgetItem (#LIST_GAD,-1,"Elément "+Str(a)+" de la boîte à liste")   ; défini le contenu de la boîte de liste
    Next
    SetGadgetState(#LIST_GAD,9)    ; sélectionne le dixième élément (la numérotation commmence à 0)
   
   
    Repeat 
      
      Select EventGadget()
        Case #EXPLOR_GAD
          If EventType() = #PB_EventType_LeftClick       ; Si clic gauche
            Dossier$ = GetGadgetText(#EXPLOR_GAD)    ; Le chemin va se placer dans la variable Dossier$
            Debug "Dossier selectionner : " + Dossier$
          EndIf
          
          
      EndSelect
      
      
    Until WaitWindowEvent() = #PB_Event_CloseWindow
   
EndIf

End

Une fois que le chemin est bien reconnu, il faut lister les fichiers.
Ce qui donne :

Code : Tout sélectionner

Enumeration FENGAD
  #FEN
  #IM_GAD
  #EXPLOR_GAD
  #LIST_GAD
EndEnumeration

Enumeration MESIMAGES
  #titre
EndEnumeration


If OpenWindow(#FEN, 0, 0, 749, 470, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 
  If LoadImage(#titre, "c:\SPH\PB\titre.bmp")    ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image
      ImageGadget(#IM_GAD,  10, 10, 728, 53, ImageID(#titre))                      ; imagegadget standard
  EndIf
   
  ExplorerTreeGadget(#EXPLOR_GAD, 10, 73, 360, 300, "*.pb;*.pbi")

 
  ListViewGadget(#LIST_GAD,376,73,360,300)
;     For a=1 To 12
;       AddGadgetItem (#LIST_GAD,-1,"Elément "+Str(a)+" de la boîte à liste")   ; défini le contenu de la boîte de liste
;     Next
;     SetGadgetState(#LIST_GAD,9)    ; sélectionne le dixième élément (la numérotation commmence à 0)
   
   
    Repeat 
      
      Select EventGadget()
        Case #EXPLOR_GAD
          If EventType() = #PB_EventType_LeftClick       ; Si clic gauche
            Dossier$ = GetGadgetText(#EXPLOR_GAD)    ; Le chemin va se placer dans la variable Dossier$
            Debug "Dossier selectionner : " + Dossier$
            
            
            ; On efface la liste
            ClearGadgetItems(#LIST_GAD)
            
            ;---- Lecture du dossier ----
            If ExamineDirectory(0, Dossier$, "*.JPG*")  ; Si les fichiers sont des jpg
              While NextDirectoryEntry(0)
                If DirectoryEntryType(0) = #PB_DirectoryEntry_File
                  ; Affichage des fichiers
                  ; Le nom de chaque fichier sera capté par DirectoryEntryName(0)
                  ; On les ajoute un par un dans la listview
                  AddGadgetItem (#LIST_GAD,-1, DirectoryEntryName(0) )
                EndIf
               Wend
              FinishDirectory(0)
            EndIf
            
            
          EndIf
          
          
      EndSelect
      
      
    Until WaitWindowEvent() = #PB_Event_CloseWindow
   
EndIf

End
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Tonio
Messages : 95
Inscription : ven. 07/avr./2017 14:49
Localisation : Sud Est

Re: Cherche les bons gadgets

Message par Tonio »

Bonjour Sph

Si ça peux t'aider voici un titre que j'ai crée :
https://img15.hostingpics.net/pics/394301Titre.png
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Cherche les bons gadgets

Message par Marc56 »

@SPH: Tu n'a pas besoin de lister les fichiers d'un répertoire, un gadget le fait pour toi: ExplorerListGadget() :P

Code : Tout sélectionner

OpenWindow(0, 0, 0, 749, 470, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

If LoadImage(0, "c:\SPH\PB\titre.bmp")    ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image
     ImageGadget(0,  10, 10, 728, 53, ImageID(0))                      ; imagegadget standard
EndIf

CompilerIf #PB_Compiler_Version = 560
     ; Si PB 5.60 on a directement accès au répertoire image
     Repertoire$ = GetUserDirectory(#PB_Directory_Pictures)
CompilerEndIf

ExplorerTreeGadget(1, 10, 73, 360, 300, Repertoire$, #PB_Explorer_NoFiles)
ExplorerListGadget(2, 376,73,360,300, "*.jpg", #PB_Explorer_NoFolders|#PB_Explorer_NoParentFolder)

Procedure Afficher_fichiers()
     SetGadgetText(2, "")                    ; Vider la liste des fichiers
     Repertoire$ = GetGadgetText(1)          ; Voir quel est le répertoire sélectionné 
     SetGadgetText(2, Repertoire$)           ; Remplir la liste avec le répertoire
EndProcedure

; Si clic gauche sur l'arbre ou déplacement avec les flèches, alors afficher les fichiers dans la fenêtre liste fichiers
BindGadgetEvent(1, @Afficher_fichiers(), #PB_EventType_Change) ; #PB_EventType_LeftClick) 

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

End 
(ici je n'affiche que les *.jpg)

:idea: Avec #PB_EventType_Change au lieu de #PB_EventType_LeftClick, le déplacement dans l'arbre peut se faire à la souris ou au clavier.

La suite que tu peux faire:
  • Une troisième fenêtre qui est une liste qui se remplie de chaque fichier sélectionné par l'utilisateur
  • Une zone de prévisualisation qui affiche l'image cliquée (redimensionnée)
  • Le drag and drop (c'est plus facile qu'on ne pense grâce à PB)
:wink:
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Cherche les bons gadgets

Message par SPH »

Merci les mecs :)

ps : ExplorerTreeGadget(#EXPLOR_GAD, 10, 73, 360, 300, "*.pb;*.pbi")
Que veux dire le "*.pb;*.pbi" ??

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Cherche les bons gadgets

Message par Ar-S »

.pb c'est l'extension des fichiers de code en pure basic. Comme le .txt c'est pour du texte et le .jpg c'est pour les images jpeg.
Le .pbi n'est pas obligatoire, si tu as lu ce qui est ecrit quand tu sauves, c'est un fichier à inclure. (Pure Basic Insert je dirai).
En gros tu peux scinder ton code en morceau quand il est volumineux. Mettre tes datasections dans un fichier séparé par exemple.
Ensuite tu inclus ce fichier via includefile dans ton code principale.
Que tu mettes .pb ou .pbi pour les fichiers annexes, ça n'a aucune importance.
Après 12 ans SPH se met aux gadgets :) Il n'est jamais trop tard pour bien faire ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Cherche les bons gadgets

Message par Marc56 »

SPH a écrit : ps : ExplorerTreeGadget(#EXPLOR_GAD, 10, 73, 360, 300, "*.pb;*.pbi")
Que veux dire le "*.pb;*.pbi" ??
Dans ce contexte, c'est le filtre du type de fichier(s) que va afficher le gadget.

Pour ne pas rendre le TreeGadget illisible, (s'il comporte trop de fichiers), on préfère souvent lui dire de ne PAS afficher les fichiers, mais juste les répertoires. Comme ceci

Code : Tout sélectionner

ExplorerTreeGadget(1, 10, 73, 360, 300, "", #PB_Explorer_NoFiles)
Et on met à côté un deuxième gadget "liste de fichiers" pour lequel on dit de ne PAS afficher les dossiers, ni le répertoire parent [..] (pour empêcher l'utilisateur de cliquer sur .. et donc de remonter dans l’arborescence et désynchroniser l'arbre)
C'est ici qu'on met le filtre de fichier(s).
Ce filtre peut-être multiple, à condition de séparer par un point-virgule. (ex: "*.jpg;*.jpeg;*.png;*.bmp")

Code : Tout sélectionner

ExplorerListGadget(2, 376,73,360,300, "*.jpg", #PB_Explorer_NoFolders|#PB_Explorer_NoParentFolder)
Mais on peut aussi resynchroniser l'arbre avec un On_Change sur la liste de fichier.

:wink:
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Cherche les bons gadgets

Message par venom »

C'est drole, je n'avais jamaus remarquer qu'avec ExplorerTreeGadget les dossier caché s'affiche. Dommage qu'il n'y ai pas l'option.

Code : Tout sélectionner

#PB_Explorer_hide
:D






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Cherche les bons gadgets

Message par SPH »

Un bug : ExplorerListGadget ne liste pas tout de suite les fichiers de l'arbre de ExplorerTreeGadget. On et obligé de recliquer sur l'emplacement des fichiers pour les voir apparaitre... 8O
(ou alors, il y a une option pour ca)

Code : Tout sélectionner

OpenWindow(0, 0, 0, 749, 470, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

If LoadImage(0, "c:\SPH\PB\titre.bmp")    ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image
     ImageGadget(0,  10, 10, 728, 53, ImageID(0))                      ; imagegadget standard
EndIf

CompilerIf #PB_Compiler_Version = 560
     ; Si PB 5.60 on a directement accès au répertoire image
     Repertoire$ = GetUserDirectory(#PB_Directory_Pictures)
     ;Repertoire$ = "c:\SPH\photos2017test\"
CompilerEndIf

ExplorerTreeGadget(1, 10, 73, 360, 300, Repertoire$, #PB_Explorer_NoFiles)
ExplorerListGadget(2, 376,73,360,300, "*.jpg;*.jpeg;*.bmp;*.gif;*.png", #PB_Explorer_NoFolders|#PB_Explorer_NoParentFolder)

Procedure Afficher_fichiers()
     SetGadgetText(2, "")                    ; Vider la liste des fichiers
     Repertoire$ = GetGadgetText(1)          ; Voir quel est le répertoire sélectionné 
     SetGadgetText(2, Repertoire$)           ; Remplir la liste avec le répertoire
EndProcedure

; Si clic gauche sur l'arbre ou déplacement avec les flèches, alors afficher les fichiers dans la fenêtre liste fichiers
BindGadgetEvent(1, @Afficher_fichiers(), #PB_EventType_Change) ; #PB_EventType_LeftClick) 

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

End


!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Cherche les bons gadgets

Message par Marc56 »

Si tu as beaucoup (trop) de fichiers dans un même répertoire (et une machine lente), le gadget met un certain temps à constituer la liste.
(Cela se voit car l’ascenseur se déplace quand même)

Dans ce cas, une solution simple est de ne mettre à jour la liste que si l'utilisateur fait un double clic

Code : Tout sélectionner

BindGadgetEvent(1, @Afficher_fichiers(), #PB_EventType_LeftDoubleClick)
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Cherche les bons gadgets

Message par SPH »

Marc56 a écrit :Si tu as beaucoup (trop) de fichiers dans un même répertoire (et une machine lente), le gadget met un certain temps à constituer la liste.
Je n'ai que 10 photos (petites en plus) :!: :|

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre