Alors voilà j'ai une interface graphique qui comporte une listeview et des boutons.
Pour le moment le bouton ajouté, ajoute un porgramme dans listview sans écrire dans le .ini
le bouton modifié modifié le programme dans la listview mais pas dans le .ini
Je voudrais que le bouton sauver écrive se que j'ai ajouté à l'aide du bouton ajouté et de meme pour le bouton modifier
Pouvez vous m'aider?
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <Array.au3>
Global $ini = @ScriptDir & "\programme.ini"
global $path = @ScriptDir
#Region ### START Koda GUI section ### Form=T:\cstf\mainForm.kxf
;***************************************************************
; Création d'une interface
;***************************************************************
$monprogramme = GUICreate("Mon Programme", 793, 440, 285, 175)
$Label1 = GUICtrlCreateLabel("Liste des programmes", 8, 8, 158, 20) ; titre liste des programmes
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") ; ajouter image
$executer = GUICtrlCreateButton("Executer", 648, 304, 121, 41) ; bouton excuter
$quitter = GUICtrlCreateButton("Quiter", 648, 352, 121, 41) ; bouton quitter
$ajouter = GUICtrlCreateButton("Ajouter", 648, 32, 121, 41) ; bouton ajouter
$supprimer = GUICtrlCreateButton("Supprimer", 648, 128, 121, 41) ; bouton sauvegarder
$sauver = GUICtrlCreateButton("Sauver", 648, 176, 121, 41) ; bouton sauver
;********************* http://www.iconarchive.com/tag/key
$Pic1 = GUICtrlCreatePic($path & "***", 8, 352, 329, 49) ;
$Pic2 = GUICtrlCreatePic("", 648, 224, 121, 73) ; image logiciel
$Label2 = GUICtrlCreateLabel("Version .099", 384, 416, 77, 20) ; version 0.99
$modifier = GUICtrlCreateButton("Modifier", 648, 80, 121, 41) ; bouton modifié
$ListView1 = GUICtrlCreateListView("|Nom|Programme", 8, 40, 625, 313) ; colonne checkbox,nom,programme
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 500)
_charger_la_liste_avec_le_fichier_param()
;_boutongriser()
GUISetState(@SW_SHOW)
;GUICtrlSetState($modifier,$GUI_DISABLE)
#EndRegion ### END Koda GUI section ###
$nom = ""
$programe = ""
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $ajouter
$nom = ""
$programme = ""
if _ajoutprogramme($nom, $programe) == true then ; lance la fonction ajoutprogramme
; sauver $ nom $programme dans la liste et actif (icon)
;MsgBox(1,$nom,$programe & " a été ajouté ")
GUICtrlCreateListViewItem("|" & $nom & "|" & $programe, $ListView1) ; ajout des information du programme au listview, section par section
endif
Case $modifier
$iIndex = _GUICtrlListView_GetSelectedIndices($listview1)
msgbox (0, "Selected item", $iIndex)
; ###### eccuperer les valeur dans la listview de la ligne selectionné
$nom = "aaaaaaaaaa"
$programme = "bbbbbbbbbbb"
if _modificationpro($nom, $programe) == true then
; ###### change le nom par $nom et programme par $programme dans la ligbne selectyionné
EndIf
Case $sauver
_sauvegarder()
case $supprimer
_supprimer()
Case $ListView1
Case $GUI_EVENT_CLOSE
_sauvegarder()
Exit
Case $quitter
_sauvegarder()
Exit
EndSwitch
WEnd
;***************************************************************
; Centrer boite de dialogue
;***************************************************************
Func _centerDialog($dialog)
;Local $aWinGetPos = WinGetPos($hWnd, $Text)
;If Not IsArray($aWinGetPos) Then Return SetError(1, 0, 0)
;Local $iY = (@DesktopHeight / 2) - ($aWinGetPos[2] / 2)
;Local $iX = (@DesktopWidth / 2) - ($aWinGetPos[3] / 2)
;Return WinMove($hWnd, $Text, $iX, $iY)
EndFunc ;==>_Middle
func affichebox($titre, $nom, $programme)
$Dialogueajout = GUICreate($titre, 477, 152, 400, 320)
$GroupBox1 = GUICtrlCreateGroup("", 18, 9, 437, 102)
$Label1 = GUICtrlCreateLabel("Nom", 32, 32, 33, 20)
$Input1 = GUICtrlCreateInput("", 80, 32, 281, 24)
$Input2 = GUICtrlCreateInput("", 80, 64, 281, 24)
$Label2 = GUICtrlCreateLabel("Fichier", 32, 64, 44, 20)
$parcourir = GUICtrlCreateButton("Parcourir", 368, 64, 73, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$valider = GUICtrlCreateButton("Valider", 254, 106, 92, 31)
$cancel = GUICtrlCreateButton("&Cancel", 351, 107, 93, 31)
GUISetState(@SW_SHOW)
endfunc
;***************************************************************
; Ajouter programme
;***************************************************************
Func _ajoutprogramme(byref $nom, byref $programe) ; lance la fentre dialogue 1
$Dialogueajout = GUICreate("ajouter un programme", 487, 164, 231, 154) ;, $WS_EX_TOPMOST, $monprogramme) ;, $WS_POPUPWINDOW)
$GroupBox1 = GUICtrlCreateGroup("", 18, 9, 437, 102)
$Label1 = GUICtrlCreateLabel("Nom", 32, 32, 33, 20)
$Input1 = GUICtrlCreateInput("", 80, 32, 281, 24)
$Input2 = GUICtrlCreateInput("", 80, 64, 281, 24)
$Label2 = GUICtrlCreateLabel("Fichier", 32, 64, 44, 20)
$parcourir = GUICtrlCreateButton("Parcourir", 368, 64, 73, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$valider = GUICtrlCreateButton("Valider", 246, 122, 92, 31)
$cancel = GUICtrlCreateButton("&Cancel", 351, 123, 93, 31)
GUISetState(@SW_SHOW)
Local $ajout_nom_du_programme = $Input2
;GUICtrlSetState($valider,$GUI_DISABLE)
;GUICtrlSetData($Input1, "a")
;GUICtrlSetData($Input2, "b")
while 1
$nDialogueajout = GUIGetMsg()
Switch $nDialogueajout
case $parcourir
Local $ajout_choixfichier = FileOpenDialog("Fichier à ajouter", "****", "Tous (*.*)", 4)
if $ajout_choixfichier <> "" Then
GUICtrlSetData($Input2, $ajout_choixfichier)
EndIf
Case $valider
$nom = GUICtrlRead($input1)
$programe = GUICtrlRead($input2)
GUIDelete($Dialogueajout) ;enlever fenetre dialogue
;GUICtrlCreateListViewItem("|" & $ajout_nom_du_programme & "|" & $ajout_choixfichier, $ListView1)
return true
;Case $GUI_EVENT_CLOSE or $cancel
Case $GUI_EVENT_CLOSE
GUIDelete($Dialogueajout) ;enlever fenetre dialogue
return false
case $cancel
GUIDelete($Dialogueajout) ;enlever fenetre dialogue
return false
EndSwitch
WEnd
EndFunc
;***************************************************************
; Modifier chemin du programme
;***************************************************************
Func _modificationpro(byref $nom, byref $programe) ;fonction modifier programem
$Dialogueajout = GUICreate("modifier un programme", 487, 164, 231, 154) ;, $WS_EX_TOPMOST, $monprogramme) ;, $WS_POPUPWINDOW)
$GroupBox1 = GUICtrlCreateGroup("", 18, 9, 437, 102)
$Label1 = GUICtrlCreateLabel("Nom", 32, 32, 33, 20)
$Input1 = GUICtrlCreateInput("", 80, 32, 281, 24)
$Input2 = GUICtrlCreateInput("", 80, 64, 281, 24)
$Label2 = GUICtrlCreateLabel("Fichier", 32, 64, 44, 20)
$parcourir = GUICtrlCreateButton("Parcourir", 368, 64, 73, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$valider = GUICtrlCreateButton("Valider", 246, 122, 92, 31)
$cancel = GUICtrlCreateButton("&Cancel", 351, 123, 93, 31)
GUISetState(@SW_SHOW)
Local $ajout_nom_du_programme = $Input2
;GUICtrlSetState($valider,$GUI_DISABLE)
GUICtrlSetData($Input1, $nom)
GUICtrlSetData($Input2, $programme)
while 1
$nDialogueajout = GUIGetMsg()
Switch $nDialogueajout
case $parcourir
Local $ajout_choixfichier = FileOpenDialog("Fichier à ajouter", "****", "Tous (*.*)", 4)
if $ajout_choixfichier <> "" Then
GUICtrlSetData($Input2, $ajout_choixfichier)
EndIf
Case $valider
$nom = GUICtrlRead($input1)
$programe = GUICtrlRead($input2)
GUIDelete($Dialogueajout) ;enlever fenetre dialogue
;GUICtrlCreateListViewItem("|" & $ajout_nom_du_programme & "|" & $ajout_choixfichier, $ListView1)
return true
Case $GUI_EVENT_CLOSE
GUIDelete($Dialogueajout) ;enlever fenetre dialogue
return false
Case $cancel
GUIDelete($Dialogueajout) ;enlever fenetre dialogue
return false
EndSwitch
WEnd
EndFunc
;***************************************************************
; Supprimé de la liste et du fichier ini un programme
;***************************************************************
Func _supprimer()
Local $aSelected, $Iitem, $Litem
$aSelected = _GUICtrlListView_GetSelectedIndices($ListView1, True)
If $aSelected[0] > 0 Then
$Iitem = $aSelected[1]
$Litem = _GUICtrlListView_GetItemText($ListView1, $Iitem)
Local $choix_supprimer_programme = MsgBox(4, "supprimer le programme selectionner", "Voulez-vous supprimer definitivement ? " & $Litem)
If $choix_supprimer_programme = 6 Then
Local $chemin_supprimer_programme = IniRead($ini, $Litem, "chemin", "")
FileDelete($chemin_supprimer_programme) ; supprimer definitivement le programme
_GUICtrlListView_DeleteItemsSelected($ListView1)
IniDelete($ini, $Litem) ; on supprime la section du programme selectionner
EndIf
Else
MsgBox(48, "", "Il faut selectionner un fichier dans la liste pour pouvoir le supprimer")
EndIf
EndFunc
;***************************************************************
; Sauver dans le fichier ini .ini
; parcours de la liste et enregistrement de chaque element
;***************************************************************
Func _sauvegarder()
;###### parcourir listview
_GUICtrlListView_DeleteAllItems($ListView1)
_charger_la_liste_avec_le_fichier_param()
EndFunc
;***************************************************************
; Charge le .ini
;***************************************************************
Func _charger_la_liste_avec_le_fichier_param()
If FileExists($ini) Then
Local $list = IniReadSectionNames($ini)
For $i = 1 To UBound($list) - 1 ; on lit toute les section du fichier ini
GUICtrlCreateListViewItem("|" & IniRead($ini, $list[$i], "nom", "") & "|" & IniRead($ini, $list[$i], "Programme", ""), $ListView1) ; ajout des information du programme au listview, section par section
Next
EndIf
EndFunc ;==>_charger_la_liste_avec_le_fichier_param
;***************************************************************
; Griser les boutons
;***************************************************************
Func _boutongriser();
Local $aSelected, $Iitem, $Litem
$aSelected = _GUICtrlListView_GetSelectedIndices($ListView1, True)
If $aSelected[0] > 0 Then
$Litem = _GUICtrlListView_GetItemText($ListView1, $Iitem)
Else
GUICtrlSetState($modifier,$GUI_DISABLE)
GUICtrlSetState($supprimer,$GUI_DISABLE)
EndIf
EndFunc


