je suis en train de finaliser une GUI toute simple, qui permet :
- de lister sous forme de bouton radio tous les fichiers répondant à un critère (*.ini)
- de choisir par OK ou Cancel le bouton radio de son choix
j'ai repris pour cela un code assez vieux de gestion des GUI
peut être fait on mieux, plus simple, plus efficace aujourd'hui ?
je suis preneur de toute remarque me permettant d'optimizer cela !
Aujourd'hui, ce GUI fonctionne correctement, mais on est obligé de cliquer au moins une fois sur un des boutons radios
et aussi, il faut cliquer sur le bouton GO pour lancer le processus
Je souhaiterais rajouter 2 options à cette GUI :
- Rajout 1: Se Positionner par défaut le bouton radio correspondant à un critère
- soit le fichier le plus ancien en terme de date/heure
- soit le dernier fichier par ordre alphabétique
- Rajout 2: affecter à la touche ENTER le click sur GO
en effet, dans 99% des cas, la manipulation consistera à valider le bouton radio du fichier le plus récent et à valider par GO
si le bouton radio du fichier le plus récent est déjà sélectionné, il ne me reste plus qu'à appuyer sur ENTER !
cela m'éviterait d'avoir à cliquer sur le bouton radio, puis de cliquer sur GO !!
merci de votre aide !!!

Code : Tout sélectionner
#include <ColorConstants.au3>
#include <FontConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#Include <File.au3>
#Include <Array.au3>
HotKeySet( "{ESC}", "_ExitESC")
Global $FontName="arial" ;"nyala"
Global $FontSize=12
Global $Title="GUI Tester"&"("&@DesktopWidth&"x"&@DesktopHeight&")"
Global $check_all, $valids, $valid_nb
dim $checks[100][3] ; crée une array pour les checkbox (ID + dossier)
Prereq()
Init()
CreateGUI()
RunGUI()
Exit
Func CreateGUI()
Global $hGUI = GUICreate($Title, 800,600)
;GUICtrlCreateLabel("File Selection", 100, 60, 300, 200)
;GUICtrlSetFont(-1, $FontSize, $FW_NORMAL, "", $FontName) ; Set the font of the previous control.
global $nb = $FileList[0] ; nb de fichiers trouvés
;_ArrayDisplay($checks,"liste dossiers") ; vérification
For $i = 1 to $nb
$name = StringUpper($filelist[$i])
$checks[$i][0] = GUICtrlCreateRadio($name, 200, 100+$i*40, 300, 25)
GUICtrlSetFont(-1, $FontSize-1, $FW_NORMAL, "", $FontName) ; Set the font of the previous control.
$checks[$i][1] = $Name
Next
;_ArrayDisplay($checks,"verif $checks") ; vérification
global $btn_valid = GuiCtrlCreateButton($ButtonOK, 200, 350, 100, 50)
global $btn_cancel = GuiCtrlCreateButton($ButtonCancel, 400, 350, 100, 50)
; ORI GUICtrlCreatePic("Menu.jpg",400,50,200, 150) ;Affiche l'image dans ta GUI
GuiSetState(@SW_SHOW, $hGUI)
EndFunc
Func RunGUI()
While 1
$msg = GuiGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $btn_cancel
Exit
Case $btn_valid
;msgbox(0,"btn_valid","ok")
Dim $valids[$nb+1][3] ; crée une array pour les checkbox cochées (ID + dossier)
$valid_nb = 0
For $i = 1 To $nb
If BitAnd(GUICtrlRead($checks[$i][0]), $GUI_CHECKED) = $GUI_CHECKED Then
$valids[$valid_nb][0] = $checks[$i][0]
$valids[$valid_nb][1] = $checks[$i][1]
$Val=$i
$Myfile=$valids[0][1]
$valid_nb += 1
EndIf
Next
_Run_Install() ; lance l'install
exit
EndSwitch
Wend
EndFunc
Exit
Func Prereq()
; Creating sample files to make it easier ...
filewrite("Fichier A.ini","OK")
filewrite("Fichier B.ini","OK")
filewrite("Fichier C.ini","OK")
EndFunc
Func Init()
Global $ButtonOK="GO", $ButtonCancel="NO GO", $Title, $TitleTextEnd,$WaitingText, $MsgText, $GuiMode=""
global $Myfile
global $FileList = _FileListToArray(@ScriptDir, "*.ini", 1) ; liste les fichiers correspondant au masque
;_ArrayDisplay($FileList,"liste fichiers") ; vérification
EndFunc
Func _Run_Install()
msgbox(0,"Will Run Install ",$MyFile)
EndFunc