Cherche les bons gadgets

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Cherche les bons gadgets

Message par Marc56 »

J'ai testé sous: Windows 10 x64, Windows 7, Vista, XP. Ça fonctionne partout :|
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 »

Mets ton OS, et ta/tes version(s) de PB dans ta signature, ça évitera de toujours poser la question.
Si on PC rame à afficher 10 miniatures dans un gadget, regarde dans le gestionnaire de tâche windows si tu n'as pas une appli qui te bouffe tout le processeur.
J'ai un gros PC, je confirme que l'affichage est instantané (PB5.60 x64)
~~~~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 »

Voici 3 photos representant 3 etapes :
Image

Image

Image

La premiere photo montre se qui s'affiche au lancement du code :

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, 11, 73, 360, 300, Repertoire$, #PB_Explorer_NoFiles)
ExplorerListGadget(2, 377,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
Pas de fichiers image.
2eme photo : je clique sur l'arborescence (au hazard)
3eme photo : je reviens sur l'emplacement d'origine (meme emplacement que sur la 1ere photo) : et la, ca affiche le fichier 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
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Cherche les bons gadgets

Message par Zorro »

peut etre comme ça :

note, que j'ai ajouté la possibilité d'afficher l'image choisie dans l'explorateur
donc choisi une image click dessus, elle apparaîtra dans le petit icone du haut ....:)

Code : Tout sélectionner

UseJPEGImageDecoder()
UsePNGImageDecoder()
Enumeration
		#Win 
		#Image 
		#image_gadget
		#tree_gadget
		#liste_gadget
Endenumeration

Declare afficher_fichiers()

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

If LoadImage(#image, "c:\SPH\PB\titre.bmp")    ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image		
		ResizeImage(#image,728, 53)
		ImageGadget(#image_gadget,  10, 10, 728, 53, ImageID(#image),#PB_Image_Border )                      ; 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(#tree_gadget, 11, 73, 360, 300, Repertoire$, #PB_Explorer_NoFiles)
ExplorerListGadget(#liste_gadget, 377,73,360,300, "*.jpg;*.jpeg;*.bmp;*.gif;*.png", #PB_Explorer_NoFolders|#PB_Explorer_NoParentFolder)



Repeat 
		; Si clic gauche sur l'arbre ou déplacement avec les flèches, alors afficher les fichiers dans la fenêtre liste fichiers
		;	BindGadgetEvent(#tree_gadget, @Afficher_fichiers(), #PB_EventType_Change) ; #PB_EventType_LeftClick)
		Event=WaitWindowEvent(2) 
		Select Event
		Case #PB_Event_Gadget
				Select EventGadget()
				Case #tree_gadget
						SetGadgetText(#liste_gadget, "")                    ; Vider la liste des fichiers
						Repertoire$ = GetGadgetText(#tree_gadget)          ; Voir quel est le répertoire sélectionné
						SetGadgetText(#liste_gadget, Repertoire$)           ; Remplir la liste avec le répertoire
				Case #liste_gadget
						Path.s=GetGadgetText(#liste_gadget)
						Path.s=Path.s+GetGadgetItemText(#liste_gadget,  GetGadgetState(#liste_gadget) )
						If LoadImage(#image, Path.s)    ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image	
								ResizeImage(#image,50,50)
								ImageGadget(#image_gadget,  10, 10, 50, 50, ImageID(#image),#PB_Image_Border )      
						EndIf
				EndSelect
		EndSelect
Until Event = #PB_Event_CloseWindow

End

;- ******* Zone Procedures ************
Procedure Afficher_fichiers()
EndProcedure
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Cherche les bons gadgets

Message par SPH »

Pas mal zorro : j'adopte (le bug a disparu et en plus, on peux matter l'image)

EDIT : je ne reprendrais pas mot pour mot ton code mais je vais le decouper pour comprendre comment il marche 8)
Dernière modification par SPH le lun. 29/mai/2017 16:36, modifié 1 fois.

!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
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Cherche les bons gadgets

Message par Zorro »

:)
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Cherche les bons gadgets

Message par Marc56 »

C'est intéressant comme résultat: cela montre que la méthode de gestion des évènements par callback n'est pas la panacée et que la méthode classique doit être conservée (et parfois préférée pour la compatibilité)
:arrow: Un ajout pourrait-être fait dans la doc si on arrive à isoler quels gadgets supportent mal les callback ?

:?: Le callback se ferait-il trop vite ou pas assez sur certains gadgets ?
(il est par contre intéressant pour redimensionner une fenêtre: les gadgets sont alors redimensionnés en temps réel plutôt qu'au relâché de la souris)

:wink:
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 »

Tout comme il faut préférer les callback pour les timers qui de "freezeront" pas au déplacement de la fenêtre.
Le mieux est de faire des tests.
~~~~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
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Cherche les bons gadgets

Message par falsam »

@SPH : Suite à ta question sur le chatroom : http://www.purebasic.com/french/documen ... ester.html
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Cherche les bons gadgets

Message par SPH »

En effet, c'etait simple. Danke :P

!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
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Cherche les bons gadgets

Message par Zorro »

je ne suis pas au courant de la conversation sur le chat mais si tu veux un gadget qui fasse de la couleur j'en avais fait un il y a quelques temps voir ici
http://www.purebasic.fr/french/viewtopi ... lor+gadget
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Cherche les bons gadgets

Message par falsam »

Ha ben tu as bien fait de le citer ce topic. Je l'avais oublié et à la relecture et j'ai bien ri. :wink:
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: Cherche les bons gadgets

Message par JohnJohnsonSHERMAN »

Je l'ai de ce fait enregistré bien au chaud ce petit topic de type lol et intéressant ^ Et j'ai appris un truc sur Shadow :o :mrgreen:
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Cherche les bons gadgets

Message par SPH »

Je me demandais si c'est possible de voir les vignettes des photos presentes sur le gadget de droite (au lieu de voir une liste de photos) ?? :idea:

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

     Repertoire$ = ""


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
Merci 8)


ps : voici ou j'en suis avec mes gadgets :

Code : Tout sélectionner

Enumeration
      #Win 
      #Image 
      #image_gadget
      #tree_gadget
      #liste_gadget
EndEnumeration


OpenWindow(#Win, 0, 0, 749, 486, "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$ = ""
; CompilerEndIf

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

FrameGadget(3, 11,  380, 727,65, "", #PB_Frame_Single)

;titre
TextGadget(4, 20, 388,90,20,"Titre de la page :")
StringGadget(5, 20,  410, 150, 20, "")

;vignettes
CheckBoxGadget(6, 200,  388, 70, 20, " Vignettes :")
SetGadgetState(6, #PB_Checkbox_Checked)
TrackBarGadget(8, 200, 410, 180, 25, 0, 12, #PB_TrackBar_Ticks)
SetGadgetState(8, 6)
TextGadget(7, 285,  391, 95, 17, Str(37+GetGadgetState(8)*16)+" pixels de large")


;colonnes
TextGadget(9, 410, 388,50,20,"Colonnes :")
SpinGadget     (10, 410, 410, 45, 25, 1, 100)
SetGadgetState (10, 8) : SetGadgetText(10, "8")   ; définit la valeur initiale

;papier peint
CheckBoxGadget(11, 490,  388, 80, 20, " Papier peint :")
SetGadgetState(11, #PB_Checkbox_Checked)
;12 palette
;13 générer
ButtonGadget(13, 500,  412, 70, 18, "Couleur")
;14 image fong.gif
   If CreateImage(14, 32,32) And StartDrawing(ImageOutput(14))
      For x = 0 To 31
        For y = 0 To 31
          Plot(X, Y, RGB(255,255,255))
        Next y
      Next x
      StopDrawing() 
      ImageGadget(14, 580, 394, 32, 32, ImageID(14))
    EndIf


;visualiser
CheckBoxGadget(15, 650,  388, 80, 20, " Visualiser")
SetGadgetState(15, #PB_Checkbox_Checked)

;generer le html
ButtonGadget(16, 10,  450, 729, 28, "Générer la page")

;ImageGadget(0,  10, 10, 728, 53, ImageID(0))                      ; imagegadget standard

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



Repeat
   Evenement = WaitWindowEvent()
   If Evenement = #PB_Event_Gadget
    If EventGadget() = 10 ;Il faut indiquer le bon gadget
     SetGadgetText(10,Str(GetGadgetState(10))) ; là aussi
    EndIf
    If EventGadget() = 8 ;Il faut indiquer le bon gadget
      ;MessageRequester("",Str(GetGadgetState(8)))
      SetGadgetText(7, Str(37+GetGadgetState(8)*16)+" pixels de large")

      ;MessageRequester("",Str(GetGadgetState(10)))
     ;Debug (GetGadgetText(5))
    EndIf
    If EventGadget() = 13 ;Il faut indiquer le bon gadget
      couleur=ColorRequester()
      Restore fond
      
;       If CreateImage(14, 32,32) And StartDrawing(ImageOutput(14))
      If StartDrawing(ImageOutput(14))
      For u=0 To 31
        For i=0 To 31
          Read.b  c.b
          ;Debug Str(i)+"  "+Str(u)+"  "+Str(c)
          If c=1
            Plot(i,u,couleur)
          Else
            Plot(i,u,15)
          EndIf
        Next
      Next
      StopDrawing() 
      ImageGadget(14, 580, 394, 32, 32, ImageID(14))
    EndIf
      
      
;          If CreateImage(14, 32,32) And StartDrawing(ImageOutput(14))
;       For x = 0 To 31
;         For y = 0 To 31
;           Plot(X, Y, RGB(255,255,255))
;         Next y
;       Next x
;       StopDrawing() 
;       ImageGadget(14, 580, 394, 32, 32, ImageID(14))
;     EndIf

      ;MessageRequester("",Str(GetGadgetState(8)))
      ;MessageRequester("",Str(GetGadgetState(10)))
     ;Debug (GetGadgetText(5))
    EndIf
   EndIf
Until Evenement = #PB_Event_CloseWindow
End

;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;

DataSection
fond:
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
EndDataSection

!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