Bonjour,
J'ai créé une petite application qui récupère les fichiers TXT et JPG d'un dossier et qui créé dynamiquement un bouton par fichier permettant d'ouvrir ce dernier.
Je souhaite que la taille de la GUI se modifie dynamiquement afin de s'agrandir ou se rétrécir en fonction du nombre de fichiers et avec une taille maximum pour ne pas avoir un problème lorsqu'il y en a trop (des fichiers).
Lorsque la taille maximum est atteinte, j'aurais aimé qu'une seconde GUI soit créé avec les boutons ne pouvant être afficher dans la première GUI.
Et enfin, je souhaite pouvoir passer d'une GUI à l'autre grâce à des boutons "Flèche droite" ou "Flèche gauche".
Voici le code en question :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstants.au3>
#include <File.au3>
Global $chemin = @UserProfileDir & "\Downloads" ; Chemin où se situe les fichiers
Global $files = _FileListToArrayRec($chemin, "*.txt;*.jpg", 1) ; Récupération des fichiers
Global $GUI = GUICreate("Liseuse")
GUISetState(@SW_SHOW, $GUI)
Local $boutons[$files[0]]
Local $placement = 10
For $i = 1 to $files[0]
$boutons[$i-1] = GUICtrlCreateButton($files[$i] & @LF, 10, $placement, 200, 20)
$placement = $placement + 30
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE ; Lorsqu'on clic sur la croix de fermeture, on ferme l'application.
Exit
EndSwitch
For $i = 1 to $files[0]
If $nMsg = $boutons[$i-1] Then ShellExecute($chemin & "\" & $files[$i])
Next
WEnd
J'ai regardé du coté du Guictrlsetdata comme indiqué
ici mais ça ne correspond pas à ce que je cherche.
J'ai pensé aussi à mettre une condition sur la taille de la variable $placement pour créer la seconde GUI mais je ne sais pas comment mettre cette idée en place.
Si quelqu'un à une piste, je suis preneur.
EDIT :
Oops, je viens de voir que j'ai mis mon poste au mauvais endroit, si quelqu'un peut le déplacer, je l'en remercie.
EDIT2 :
Voici le code final :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstants.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
Global $chemin = @UserProfileDir & "\Downloads" ; Chemin où se situe les fichiers
Global $files = _FileListToArrayRec($chemin, "*.txt;*.jpg", 1) ; Récupération des fichiers
Global $GUI = GUICreate("Liseuse", 220, 250, 100, 200)
Local $idListview = GUICtrlCreateListView("Liste", 10, 10, 200, 220) ;,$LVS_SORTDESCENDING)
_GUICtrlListView_SetColumnWidth($idListview, 0, 170)
GUISetState(@SW_SHOW, $GUI)
Opt("GUIResizeMode", $GUI_DOCKALL)
Local $boutons[$files[0]]
Local $placement = 10
Local $droite = 10
For $i = 1 to $files[0]
$boutons[$i-1] = GUICtrlCreateListViewItem($files[$i], $idListview)
$placement = $placement + 30
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE ; Lorsqu'on clic sur la croix de fermeture, on ferme l'application.
Exit
EndSwitch
For $i = 1 to $files[0]
If $nMsg = $boutons[$i-1] Then ShellExecute($chemin & "\" & $files[$i])
Next
WEnd