Bon je sais le titre est pas super explicite mais bon... plutôt que de faire un post par bug, vu qu'il s'agit du même script autant tout regroupé non ? (si besoin je ferrais plusieurs post

Bon le script en question, vous l'avez déjà vu sur la section 'graphique' je l'ai un peu avancé (pas des masses de temps pour bosser dessus et je me suis pas mal pris la tête sur les bugs...) :
► Afficher le texte
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.12.1
Author: SurPriseS
Script Function:
Entretien automobile.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
;------------------------------------------------------ Include
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <date.au3>
#include <File.au3>
;------------------------------------------------------ Variable
Global $gaz
Global $resum
Global $entretien
Global $bouton_next
Global $input_prix
Global $input_litre
Global $input_km
Global $i = 1
Global $g = 0
Global $bouton_valid
Global $combo_station
Global $where
Global $Focus = $input_prix
Global $item
Global $z = 1
Global $color_resum1 = IniRead("conf.ini","color","color_resum1","")
Global $color_resum2 = IniRead("conf.ini","color","color_resum2","")
Global $ind = 1
;------------------------------------------------------ GUI
$ini_titre1 = IniRead("conf.ini","global","window","")
GUICreate($ini_titre1, 700, 425) ; fenêtre principale
$ini_bouton1 = IniRead("conf.ini","global","bouton_gaz","")
$bouton_gaz = GUICtrlCreateButton($ini_bouton1, 10, 10, 185, 40) ; Bouton gaz
GUICtrlSetFont($bouton_gaz, 24)
$ini_bouton2 = IniRead("conf.ini","global","bouton_entretien","")
$bouton_entretien = GUICtrlCreateButton($ini_bouton2, 10, 60, 185, 40) ; Bouton entretien
GUICtrlSetFont($bouton_entretien, 24)
$ini_bouton3 = IniRead("conf.ini","global","bouton_resum","")
$bouton_resum = GUICtrlCreateButton($ini_bouton3, 10, 110, 185, 40) ; Bouton résumé
GUICtrlSetFont($bouton_resum, 24)
$ini_titre2 = IniRead("conf.ini","global","pave_num","")
GUICtrlCreateGroup($ini_titre2, 10, 160, 185, 260) ; Groupement pavé numérique
$bouton_1 = GUICtrlCreateButton("1", 15, 180, 55, 55) ; Bouton 1
GUICtrlSetFont($bouton_1, 24)
$bouton_2 = GUICtrlCreateButton("2", 75, 180, 55, 55) ; Bouton 2
GUICtrlSetFont($bouton_2, 24)
$bouton_3 = GUICtrlCreateButton("3", 135, 180, 55, 55) ; Bouton 3
GUICtrlSetFont($bouton_3, 24)
$bouton_4 = GUICtrlCreateButton("4", 15, 240, 55, 55) ; Bouton 4
GUICtrlSetFont($bouton_4, 24)
$bouton_5 = GUICtrlCreateButton("5", 75, 240, 55, 55) ; Bouton 5
GUICtrlSetFont($bouton_5, 24)
$bouton_6 = GUICtrlCreateButton("6", 135, 240, 55, 55) ; Bouton 6
GUICtrlSetFont($bouton_6, 24)
$bouton_7 = GUICtrlCreateButton("7", 15, 300, 55, 55) ; Bouton 7
GUICtrlSetFont($bouton_7, 24)
$bouton_8 = GUICtrlCreateButton("8", 75, 300, 55, 55) ; Bouton 8
GUICtrlSetFont($bouton_8, 24)
$bouton_9 = GUICtrlCreateButton("9", 135, 300, 55, 55) ; Bouton 9
GUICtrlSetFont($bouton_9, 24)
$bouton_0 = GUICtrlCreateButton("0", 15, 360, 55, 55) ; Bouton 0
GUICtrlSetFont($bouton_0, 24)
$bouton_virgule = GUICtrlCreateButton(",", 75, 360, 55, 55) ; Bouton virgule
GUICtrlSetFont($bouton_virgule, 24)
$bouton_entrer = GUICtrlCreateButton("«", 135, 360, 55, 55) ; Bouton entrer
GUICtrlSetFont($bouton_entrer, 24)
; Groupe gaz
$ini_titre3 = IniRead("conf.ini","gaz","cadre","")
$group_gaz = GUICtrlCreateGroup($ini_titre3, 205, 10, 490, 410)
GUICtrlSetFont($bouton_gaz, 24)
$ini_label1 = IniRead("conf.ini","gaz","label1","")
$label_plein = GUICtrlCreateLabel($ini_label1, 220, 40, 170, 50)
GUICtrlSetFont($label_plein, 16)
$ini_boutonnext1 = IniRead("conf.ini","gaz","bouton_next","")
$bouton_next = GUICtrlCreateButton($ini_boutonnext1, 220, 100, 170, 120)
GUICtrlSetFont($bouton_next, 34)
$ini_combostation = IniRead("conf.ini","gaz","combo_station","")
$combo_station = GUICtrlCreateCombo($ini_combostation , 220, 240, 380, 25)
GUICtrlSetFont($combo_station, 24)
GUICtrlSetData(-1, "Total|Elf|Fina", " Station ")
$ini_input_prix1 = IniRead("conf.ini","gaz","input_prix","")
$input_prix = GUICtrlCreateInput($ini_input_prix1, 400, 30, 200, 50, $ES_NUMBER)
GUICtrlSetFont($input_prix, 24)
GUICtrlSetState($input_prix, $GUI_focus)
$ini_input_litre1 = IniRead("conf.ini","gaz","input_litre","")
$input_litre = GUICtrlCreateInput($ini_input_litre1, 400, 100, 200, 50, $ES_NUMBER)
GUICtrlSetFont($input_litre, 24)
$ini_input_km1 = IniRead("conf.ini","gaz","input_km","")
$input_km = GUICtrlCreateInput($ini_input_km1, 400, 170, 200, 50, $ES_NUMBER)
GUICtrlSetFont($input_km, 24)
$ini_label2 = IniRead("conf.ini","gaz","label2","")
$label_prix = GUICtrlCreateLabel($ini_label2, 600, 40, 40, 40)
GUICtrlSetFont($label_prix, 24)
$ini_label3 = IniRead("conf.ini","gaz","label3","")
$label_litre = GUICtrlCreateLabel($ini_label3, 600, 100, 40, 40)
GUICtrlSetFont($label_litre, 24)
$ini_label4 = IniRead("conf.ini","gaz","label4","")
$label_km = GUICtrlCreateLabel($ini_label4, 600, 180, 80, 80)
GUICtrlSetFont($label_km, 24)
$ini_boutonvalid1 = IniRead("conf.ini","gaz","bouton_valid","")
$bouton_valid = GUICtrlCreateButton($ini_boutonvalid1, 220, 300, 380, 110)
GUICtrlSetFont($bouton_valid, 36)
Global $gaz = StringSplit($label_plein & '.' & _
$combo_station & '.' & _
$label_plein & '.' & _
$input_prix & '.' & _
$input_litre & '.' & _
$input_km & '.' & _
$label_prix & '.' & _
$label_litre & '.' & _
$label_km & '.' & _
$bouton_valid & '.' & _
$bouton_next & '.' & _
$group_gaz, '.')
; La logique voudrait un choix de saisie par défaut.
; Si l'écran doit être vierge, décommenté la ligne suivante.
;_GuiCtrlGroupSetState($gaz, $GUI_hide)
; Groupe Entretien
$ini_titre4 = IniRead("conf.ini","entretien","cadre","")
$group_entretien= GUICtrlCreateGroup($ini_titre4, 205, 10, 490, 410)
GUICtrlSetState(-1, $GUI_hide)
$ini_label5 = IniRead("conf.ini","entretien","label5","")
$label_entretien = GUICtrlCreateLabel($ini_label5, 220, 40, 170, 50)
GUICtrlSetFont($label_entretien, 16)
GUICtrlSetState(-1, $GUI_hide)
$bouton_valid_entretien = GUICtrlCreateButton("Valider", 220, 300, 380, 110)
GUICtrlSetFont($bouton_valid_entretien, 36)
GUICtrlSetState(-1, $GUI_hide)
Global $entretien = StringSplit($group_entretien & '.' & _
$bouton_valid_entretien & '.' & _
$label_entretien, '.')
; Groupe resume
$ini_titre5 = IniRead("conf.ini","resume","cadre","")
$group_resum= GUICtrlCreateGroup($ini_titre5, 205, 10, 490, 410)
GUICtrlSetState(-1, $GUI_hide)
$ini_label6 = IniRead("conf.ini","resume","label6","")
$label_resum = GUICtrlCreateLabel($ini_label6, 220, 40, 400, 150)
GUICtrlSetFont($label_resum, 16)
GUICtrlSetState(-1, $GUI_hide)
; Local $listview, $button, $item1, $item2, $item3, $input1, $msg
;~ GUICreate("listview items", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
$listview = GUICtrlCreateListView("Date | information |Km du véhicule", 220, 70, 450, 340)
GUICtrlSetFont(-1, 12)
GUICtrlSetState(-1, $GUI_hide)
;~ $item1 = GUICtrlCreateListViewItem("21-12-08 | information |Km du véhicule", $listview)
;~ $item2 = GUICtrlCreateListViewItem("item1|col12|col13", $listview)
;~ $item3 = GUICtrlCreateListViewItem("item3|col32|col33", $listview)
GUISetState()
;~ GUICtrlSetData($item2, "ITEM1")
;~ GUICtrlSetData($item3, "||COL33")
;~ GUICtrlDelete($item1)
Global $resum = StringSplit($group_resum & '.' & _
$listview & '.' & _
$label_resum, '.')
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $bouton_gaz
_GuiCtrlGroupSetState($entretien, $GUI_hide)
_GuiCtrlGroupSetState($resum, $GUI_hide)
_GuiCtrlGroupSetState($gaz, $GUI_show)
GUICtrlSetState($input_prix, $GUI_focus)
$Focus = $input_prix
$i = 1
Case $msg = $bouton_entretien
_GuiCtrlGroupSetState($gaz, $GUI_hide)
_GuiCtrlGroupSetState($resum, $GUI_hide)
_GuiCtrlGroupSetState($entretien, $GUI_show)
case $msg = $bouton_resum
_GuiCtrlGroupSetState($entretien, $GUI_hide)
_GuiCtrlGroupSetState($gaz, $GUI_hide)
_GuiCtrlGroupSetState($resum, $GUI_show)
read_file()
Case $msg = $bouton_next
suivant()
Case $msg = $bouton_valid
valid_gaz()
Case $msg = $bouton_1
pave(1)
Case $msg = $bouton_2
pave(2)
Case $msg = $bouton_3
pave(3)
Case $msg = $bouton_4
pave(4)
Case $msg = $bouton_5
pave(5)
Case $msg = $bouton_6
pave(6)
Case $msg = $bouton_7
pave(7)
Case $msg = $bouton_8
pave(8)
Case $msg = $bouton_9
pave(9)
Case $msg = $bouton_0
pave(0)
Case $msg = $bouton_virgule
pave(10)
Case $msg = $bouton_entrer
GUICtrlSetData($Focus, "")
GUICtrlSetState($Focus, $GUI_focus)
Case $msg = $listview
MsgBox(0, "listview", GUICtrlRead(GUICtrlRead($listview)), 2)
EndSelect
WEnd
;------------------------------------------------------------------------------------- Fonction
;------------------------------------------------------ Fonction Gaz global
Func _GuiCtrlGroupSetState(ByRef $a_GroupArray, $i_State)
For $i = 1 To $a_GroupArray[0]
GUICtrlSetState($a_GroupArray[$i], $i_State)
Next
EndFunc ;==>_GuiCtrlGroupSetState
;--------------------------- Fonction valider onglet gaz
Func valid_gaz()
$read_prix = GUICtrlRead($input_prix)
$read_litre = GUICtrlRead($input_litre)
$read_km = GUICtrlRead($input_km)
$read_station = GUICtrlRead($combo_station, 1)
If $read_prix = "Tarif" Or $read_litre = "Litre" Or $read_km = "Km" Then
MsgBox(0, "", "Toutes les informations ne sont pas rentrées")
Else
_FileWriteToLine("test.txt",1,_NowDate() & ";" & $read_prix & ";" & $read_litre & ";" & $read_km & ";" & $combo_station & ";;")
GUICtrlSetData($input_prix, "Tarif")
GUICtrlSetData($input_litre, "Litre")
GUICtrlSetData($input_km, "Km")
GUICtrlSetData($combo_station, " Station ")
EndIf
EndFunc ;==>valid_gaz
;--------------------------- Fonction Suivant onglet gaz
Func suivant()
If $i = 1 Then
GUICtrlSetState($input_litre, $GUI_focus)
$Focus = $input_litre
$i = 2
ElseIf $i = 2 Then
GUICtrlSetState($input_km, $GUI_focus)
$Focus = $input_km
$i = 3
ElseIf $i = 3 Then
GUICtrlSetState($input_prix, $GUI_focus)
$Focus = $input_prix
$i = 1
Else
GUICtrlSetState($input_prix, $GUI_focus)
$Focus = $input_prix
$i = 1
EndIf
EndFunc ;==>suivant
;--------------------------- Fonction pavé numérique
Func pave($num)
If $num = 10 And StringInStr(GUICtrlRead($Focus), ",") Then Return
If $num = 10 And Not StringInStr(GUICtrlRead($Focus), ",") Then
GUICtrlSetData($Focus, GUICtrlRead($Focus) & ",")
ElseIf StringInStr(GUICtrlRead($Focus), ",") Then
GUICtrlSetData($Focus, GUICtrlRead($Focus) & $num)
Else
GUICtrlSetData($Focus, GUICtrlRead($Focus) * 10 + $num)
EndIf
EndFunc ;==>pave
;------------------------------------------------------ Fonction Résumé global
;--------------------------- Fonction lecture fichier gaz
func read_file()
if $ind = 1 Then
Else
for $ind2=1 to 5
;~ Assign("$item_"&$ind2, "$item_"&$ind2)
;~ MsgBox(0,"","$item_"&$ind2)
GUICtrlDelete("$item_"&$ind2)
Next
$ind = 1
EndIf
$file = FileOpen("test.txt", 0)
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop ;quitte la boucle en cas d'erreur
if $line = "" Then ;bloque le plantage du script si la ligne est vide
Else
$info = StringSplit($line,";")
$info_plein = $info[2] & " € - " & $info[3] & " L - " & $info[2]/$info[3] & " €/L - " & $info[4] & "Km"
;$item = GUICtrlCreateListViewItem($info[1] & "|" & $info_plein & "|" & $info[3], $listview)
Assign("$item_"&$ind, GUICtrlCreateListViewItem($info[1] & "|" & $info_plein & "|" & $info[3], $listview))
if $z = 1 Then
GUICtrlSetBkColor ( -1, $color_resum1)
$z = 2
Else
GUICtrlSetBkColor ( -1, $color_resum2)
$z = 1
EndIf
$ind = $ind + 1
EndIf
Wend
EndFunc ;==>read_file
Et pour que sa marche le fichier ini (conf.ini) :
► Afficher le texte
[global]
window=" Entretien véhicule "
bouton_gaz=" Gasoil"
bouton_entretien=" Entretien"
bouton_resum=" Résumé"
pave_num=" Pavé numérique"
[gaz]
cadre=" Gasoil"
label1=" Ajouter un plein : "
bouton_next=" Suivant"
bouton_valid=" Valider "
combo_station=" Station"
input_prix=" Tarif"
input_litre=" Litre"
input_km=" Km"
label2=" €"
label3=" L"
label4=" Km"
[entretien]
cadre=" Entretien "
label5="Liste des entretiens : "
[resume]
cadre=" Résumé "
label6="Résumé des pleins et entretiens : "
[color]
color_resum1= "0xaa0000"
color_resum2= "0xF320F9"
* Toujours un petit soucis au niveau du focus dans l'onglet 'gasoil' (pas super important pour le moment)
* Bug au niveau de l'onglet 'résumé', je voulais supprimer toutes les info de la listview pour faire un "refresh" mais il me rajoute les info a chaque click sur 'résumé'
* Bug au niveau de la 'station' dans l'onglet 'gasoil' : Affiche systématiquement 22 dans le fichier texte créer...
* Il y'en a peut être d'autre que j'ai raté ^^
Pour faciliter un peu j'ai mis le tout sur un FTP :
http://www.k1der.net/~surprise/fichiers ... n_auto.zip
Voilou si vous avez des idées ou conseil pour améliorer l'existant

Merci !