jerem488 Posted October 31, 2009 Posted October 31, 2009 Here is my script : This program need to manage sportsbook. And I wanted to ask if I can upgrade this code ? And there are some errors : - I don't know why the option $LVS_EX_GRIDLINES don't work correctly, - I don't know why when we click on the button "Ajouter un pari", the .png picture is reloaded each click on this button, - sort the two listviews with the first column of each listview (which is hide), from largest to smallest expandcollapse popup#include <StaticConstants.au3> #include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <ListviewConstants.au3> #include <GuiListView.au3> #include <ButtonConstants.au3> #include <UpdownConstants.au3> #include <EditConstants.au3> #include <GuiEdit.au3> #include <WindowsConstants.au3> #include <Constants.au3> #include <GDIPlus.au3> #Include <GuiImageList.au3> Dim $Somme_Actuelle, $MAJ_SommeActuelle, $OuvertureFichier = 1 Global $hEdit, $hDC, $hBrush, $Item = -1, $SubItem = 0, $LVHit = 0, $OLR If ProcessExists("Paris sportifs.exe") Then Exit EndIf $Fenetre = GUICreate("Paris sportifs", 748, 570) $FichierIcone = @DesktopDir & "\IconsLandVistaSportIconsDemo\PNG\128x128\Trophy_Gold.png" GUISetIcon($FichierIcone) WinSetTrans("Paris sportifs", "", 230) _GDIPlus_StartUp() $hImage = _GDIPlus_ImageLoadFromFile(@DesktopDir & "\TousIconesSports_2.png") $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Fenetre) ; ####################################################### ; ################ GROUPE PARIS EN COURS ################ ; ####################################################### GUICtrlCreateGroup(" Paris en cours ", 20, 130, 294, 280) $Colonnes_Paris_Actuels = _GUICtrlListView_Create($Fenetre, "", 30, 150, 274, 250, BitOR($LVS_EDITLABELS, $LVS_REPORT, $LVS_SINGLESEL), BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES)) ; Ajout des colonnes : _GUICtrlListView_InsertColumn($Colonnes_Paris_Actuels, 0, "NumeroLigne") _GUICtrlListView_InsertColumn($Colonnes_Paris_Actuels, 1, "Mises", 60, 2) _GUICtrlListView_InsertColumn($Colonnes_Paris_Actuels, 2, "Cotes", 60, 2) _GUICtrlListView_InsertColumn($Colonnes_Paris_Actuels, 3, "Gain possible", 90, 2) _GUICtrlListView_InsertColumn($Colonnes_Paris_Actuels, 4, "G", 30, 2) _GUICtrlListView_InsertColumn($Colonnes_Paris_Actuels, 5, "P", 30, 2) _GUICtrlListView_HideColumn($Colonnes_Paris_Actuels, 0) $Ajout_aux_Paris_Termines = GUICtrlCreateButton("Ajouter aux paris terminés", 82, 430, 170) ; ####################################################### ; ################ GROUPE PARIS TERMINES ################ ; ####################################################### GUICtrlCreateGroup(" Paris terminés ", 334, 130, 294, 280) $Colonnes_Paris_Termines = _GUICtrlListView_Create($Fenetre, "", 344, 150, 274, 250, BitOR($LVS_REPORT, $LVS_SINGLESEL), BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES)) ; Ajout des colonnes : _GUICtrlListView_InsertColumn($Colonnes_Paris_Termines, 0, "Numero Ligne") _GUICtrlListView_InsertColumn($Colonnes_Paris_Termines, 1, "Mises", 90, 2) _GUICtrlListView_InsertColumn($Colonnes_Paris_Termines, 2, "Cotes", 90, 2) _GUICtrlListView_InsertColumn($Colonnes_Paris_Termines, 3, "Gains", 90, 2) _GUICtrlListView_HideColumn($Colonnes_Paris_Termines, 0) ; ################################################################# ; ######################## GROUPE SOMMES ########################## ; ################################################################# $GroupeSommes = GUICtrlCreateGroup(" Sommes", 20, 10, 224, 100) $SommeDeDepart = GUICtrlCreateCheckbox("Somme de départ :", 30, 30) $SommeDepart = GUICtrlCreateInput("", 140, 31, 50) $Label_Somme_Actuelle = GUICtrlCreateLabel("Somme actuelle : ", 45, 78, 100, 12) $Label_Somme_Actuelle_2 = GUICtrlCreateLabel("", 130, 78, 40, 12) $Ajouter_Somme = GUICtrlCreateButton("Ajouter", 172, 68, 60, 30) ; ################################################################# ; ######################### GROUPE MISES ########################## ; ################################################################# GUICtrlCreateGroup(" Mises ", 264, 10, 364, 100) GUICtrlCreateLabel("Cote : ", 274, 34) $Cote = GUICtrlCreateInput("", 307, 31, 50) $Bouton_Calcul_Mise = GUICtrlCreateButton("Calcul de la mise maximale", 274, 68, 162, 30, $BS_MULTILINE) $Bouton_Ajout_Pari = GUICtrlCreateButton("Ajouter le pari", 456, 68, 162, 30, $BS_MULTILINE) ; Calcul de la somme maximale sur chaque pari : Solde courant X 4 / 100 (Ne pas dépasser 4% de votre capital sur un pari.) GUICtrlCreateLabel("Mise maximale : ", 459, 34) $Pourcentage = 4 $Mise_Maximale = Round($Somme_Actuelle * $Pourcentage / 100, 1) $Zone_Somme_Maximale = GUICtrlCreateInput("", 539, 31, 60, -1) ; ################################################################# ; ################# GCREATION DES MENUS ########################### ; ################################################################# $Menu_Fichier = GUICtrlCreateMenu("&Fichier") $Menu_Fichier_Nouveau = GUICtrlCreateMenuItem("&Nouveau", $Menu_Fichier) $Menu_Fichier_Ouvrir = GUICtrlCreateMenuItem("&Ouvrir", $Menu_Fichier) $Menu_Fichier_Separateur_1 = GUICtrlCreateMenuItem("", $Menu_Fichier) $Menu_Fichier_Quitter = GUICtrlCreateMenuItem("&Fermer", $Menu_Fichier) SommeDepart() GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT") _GUICtrlListView_RegisterSortCallBack($Colonnes_Paris_Actuels) GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Or $msg = $Menu_Fichier_Quitter If GUICtrlRead($Label_Somme_Actuelle_2) <> "" And GUICtrlRead($Label_Somme_Actuelle_2) <> "0" Then RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme actuelle", "REG_SZ", GUICtrlRead($Label_Somme_Actuelle_2)) EndIf MajParis_INI() ExitLoop Case $msg = $Ajouter_Somme If GUICtrlRead($SommeDepart) <> "" And GUICtrlRead($SommeDepart) <> "0" Then If $OuvertureFichier = 1 Then IniWriteSection(@ProgramFilesDir & "\Paris sportifs\Paris.ini", GUICtrlRead($SommeDepart) & "-" & Random(1, 3000, 1), "") Else IniWriteSection($OuvertureFichier, GUICtrlRead($SommeDepart) & "-" & Random(1, 3000, 1), "") EndIf RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme de base", "REG_SZ", GUICtrlRead($SommeDepart)) RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme actuelle", "REG_SZ", GUICtrlRead($SommeDepart)) GUICtrlSetState($SommeDeDepart, $GUI_CHECKED) GUICtrlSetState($SommeDepart, $GUI_DISABLE) GUICtrlSetState($Ajouter_Somme, $GUI_DISABLE) GUICtrlSetData($Label_Somme_Actuelle_2, GUICtrlRead($SommeDepart)) GUICtrlSetFont($Label_Somme_Actuelle_2, 8.5, 600) If $SommeDepart > 0 Then GUICtrlSetColor($Label_Somme_Actuelle_2, 0x007F0E) ElseIf $SommeDepart = 0 Then GUICtrlSetColor($Label_Somme_Actuelle_2, 0x000000) Else GUICtrlSetColor($Label_Somme_Actuelle_2, 0xFF0000) EndIf EndIf Case $msg = $Menu_Fichier_Ouvrir $OuvertureFichier = FileOpenDialog("Ouvrir", @ProgramFilesDir & "\Paris sportifs\", "ini (*.ini)", 3) If @error Then MsgBox(48,"","Vous n'avez sélectionné aucun fichier.") Else $OuvertureFichier = StringReplace($OuvertureFichier, "|", @CRLF) SommeDepart() EndIf Case $msg = $Menu_Fichier_Nouveau RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme de base", "REG_SZ", "") RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme actuelle", "REG_SZ", "") GUICtrlSetData($SommeDepart, "") GUICtrlSetData($Label_Somme_Actuelle_2, "0") GUICtrlSetData($Cote, "") GUICtrlSetData($Mise_Maximale, "") GUICtrlSetState($SommeDeDepart, $GUI_UNCHECKED) GUICtrlSetState($SommeDepart, $GUI_ENABLE) GUICtrlSetState($Ajouter_Somme, $GUI_ENABLE) _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($Colonnes_Paris_Actuels)) Case $msg = $Bouton_Calcul_Mise $Mise_Maximale = Round(GUICtrlRead($Label_Somme_Actuelle_2) * 4 / 100, 1) GUICtrlSetData($Zone_Somme_Maximale, $Mise_Maximale) Case $msg = $Bouton_Ajout_Pari AjoutPari() Case $msg = $Ajout_aux_Paris_Termines $Nombre_Lignes = _GUICtrlListView_GetItemCount($Colonnes_Paris_Actuels) For $i = 0 To $Nombre_Lignes -1 $Nombre_Lignes_ParisTermines = _GUICtrlListView_GetItemCount($Colonnes_Paris_Termines) $NumeroLigne = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 1) $Mises = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 2) $Cotes = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 3) $ParisGagnes = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 5) $ParisPerdus = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 6) $OLR = $i If $ParisGagnes[3] = "G" Or $ParisGagnes[3] = "g" Then _GUICtrlListView_AddItem($Colonnes_Paris_Termines, $Nombre_Lignes_ParisTermines -1, $Nombre_Lignes_ParisTermines) _GUICtrlListView_AddSubItem($Colonnes_Paris_Termines, $Nombre_Lignes_ParisTermines, $Mises[3], 1) _GUICtrlListView_AddSubItem($Colonnes_Paris_Termines, $Nombre_Lignes_ParisTermines, $Cotes[3], 2) _GUICtrlListView_AddSubItem($Colonnes_Paris_Termines, $Nombre_Lignes_ParisTermines, Round($Mises[3] * $Cotes[3], 2), 3) _GUICtrlListView_DeleteItem($Colonnes_Paris_Actuels, $OLR) ElseIf $ParisPerdus[3] = "P" Or $ParisPerdus[3] = "p" Then _GUICtrlListView_AddItem($Colonnes_Paris_Termines, $Nombre_Lignes_ParisTermines -1, $Nombre_Lignes_ParisTermines) _GUICtrlListView_AddSubItem($Colonnes_Paris_Termines, $Nombre_Lignes_ParisTermines, $Mises[3], 1) _GUICtrlListView_AddSubItem($Colonnes_Paris_Termines, $Nombre_Lignes_ParisTermines, $Cotes[3], 2) _GUICtrlListView_AddSubItem($Colonnes_Paris_Termines, $Nombre_Lignes_ParisTermines, "-", 3) _GUICtrlListView_DeleteItem($Colonnes_Paris_Actuels, $OLR) EndIf _GUICtrlListView_SetItem($Colonnes_Paris_Actuels, "", $i, 4) _GUICtrlListView_SetItem($Colonnes_Paris_Actuels, "", $i, 5) Next ;~ _GUICtrlListView_SortItems($Colonnes_Paris_Termines, 0) EndSelect WEnd ; Clean up resources _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_ImageDispose($hImage) _GDIPlus_ShutDown() _GUICtrlListView_UnRegisterSortCallBack($Colonnes_Paris_Actuels) GUIDelete() Func SommeDepart() If $OuvertureFichier = 1 Then $Lecture_Somme = RegRead("HKLM\SOFTWARE\Paris sportifs", "Somme actuelle") ; Si la clé de registre n'existe pas, OU que la clé de registre indique une somme de 0€ OU que les tableaux de paris (actuels et terminés) sont vides If $Lecture_Somme = "" Or $Lecture_Somme = "0" And _GUICtrlListView_GetItemCount($Colonnes_Paris_Actuels) = 0 Then GUICtrlSetState($SommeDeDepart, $GUI_UNCHECKED) GUICtrlSetState($SommeDepart, $GUI_ENABLE) GUICtrlSetState($Ajouter_Somme, $GUI_ENABLE) GUICtrlSetData($Label_Somme_Actuelle_2, "0") Else GUICtrlSetState($SommeDeDepart, $GUI_CHECKED) GUICtrlSetState($SommeDepart, $GUI_DISABLE) GUICtrlSetState($Ajouter_Somme, $GUI_DISABLE) GUICtrlSetData($SommeDepart, RegRead("HKLM\SOFTWARE\Paris sportifs", "Somme de base")) GUICtrlSetData($Label_Somme_Actuelle_2, $Lecture_Somme) ; Mise à jour de l'historique des paris (actuels et terminés) à partir du fichier .ini MajParis() EndIf GUICtrlSetFont($Label_Somme_Actuelle_2, 8.5, 600) If $Lecture_Somme > 0 Then GUICtrlSetColor($Label_Somme_Actuelle_2, 0x007F0E) ElseIf $Lecture_Somme = 0 Then GUICtrlSetColor($Label_Somme_Actuelle_2, 0x000000) Else GUICtrlSetColor($Label_Somme_Actuelle_2, 0xFF0000) EndIf Else $Derniere_Section = IniReadSectionNames($OuvertureFichier) ; Mise à jour de la somme actuelle $LectureClesIni = IniReadSection($OuvertureFichier, $Derniere_Section[$Derniere_Section[0]]) If Not @error Then For $i = 1 To $LectureClesIni[0][0] $MAJ_SommeActuelle += $LectureClesIni[$i][0] Next EndIf $PositionTiret = StringInStr($Derniere_Section[$Derniere_Section[0]], "-") $Lecture_Somme_Base = StringLeft($Derniere_Section[$Derniere_Section[0]], $PositionTiret -1) GUICtrlSetData($SommeDepart, $Lecture_Somme_Base) GUICtrlSetData($Label_Somme_Actuelle_2, $Lecture_Somme_Base - $MAJ_SommeActuelle) RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme de base", "REG_SZ", $Lecture_Somme_Base) RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme actuelle", "REG_SZ", $Lecture_Somme_Base - $MAJ_SommeActuelle) MajParis() $Lecture_Somme = GUICtrlRead($Label_Somme_Actuelle_2) GUICtrlSetFont($Label_Somme_Actuelle_2, 8.5, 600) If $Lecture_Somme > 0 Then GUICtrlSetColor($Label_Somme_Actuelle_2, 0x007F0E) ElseIf $Lecture_Somme = 0 Then GUICtrlSetColor($Label_Somme_Actuelle_2, 0x000000) Else GUICtrlSetColor($Label_Somme_Actuelle_2, 0xFF0000) EndIf EndIf EndFunc ;==>SommeDepart ; #################################################################################################### Func MajParis() ; ################################################################# ; ############# MISE A JOUR DE L'HISTORIQUE DES PARIS ############# ; ################################################################# ; Mise à jour de l'historique des paris (actuels et terminés) à partir du fichier .ini If FileExists(@ProgramFilesDir & "\Paris sportifs\Paris.ini") And $OuvertureFichier = 1 Then $Derniere_Section = IniReadSectionNames(@ProgramFilesDir & "\Paris sportifs\Paris.ini") $Lecture_Mises_Cotes = IniReadSection(@ProgramFilesDir & "\Paris sportifs\Paris.ini", $Derniere_Section[$Derniere_Section[0]]) If Not @error Then For $i = 1 To $Lecture_Mises_Cotes[0][0] $Nombre_Lignes = _GUICtrlListView_GetItemCount($Colonnes_Paris_Actuels) $Ligne_Paris = _GUICtrlListView_AddItem($Colonnes_Paris_Actuels, $Nombre_Lignes -1, $Nombre_Lignes) $Ligne_Paris1 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, $Lecture_Mises_Cotes[$i][0], 1);, 2) $Ligne_Paris2 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, $Lecture_Mises_Cotes[$i][1], 2);, 2) $Ligne_Paris3 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, Round($Lecture_Mises_Cotes[$i][0] * $Lecture_Mises_Cotes[$i][1], 2), 3);, 2) Next ;~ _GUICtrlListView_SortItems($Colonnes_Paris_Actuels, 0) EndIf ElseIf Not $OuvertureFichier = 1 Then _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($Colonnes_Paris_Actuels)) $Derniere_Section = IniReadSectionNames($OuvertureFichier) $Lecture_Mises_Cotes = IniReadSection($OuvertureFichier, $Derniere_Section[$Derniere_Section[0]]) If Not @error Then For $i = 1 To $Lecture_Mises_Cotes[0][0] $Nombre_Lignes = _GUICtrlListView_GetItemCount($Colonnes_Paris_Actuels) $Ligne_Paris = _GUICtrlListView_AddItem($Colonnes_Paris_Actuels, $Nombre_Lignes -1, $Nombre_Lignes) $Ligne_Paris1 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, $Lecture_Mises_Cotes[$i][0], 1);, 2) $Ligne_Paris2 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, $Lecture_Mises_Cotes[$i][1], 2);, 2) $Ligne_Paris3 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, Round($Lecture_Mises_Cotes[$i][0] * $Lecture_Mises_Cotes[$i][1], 2), 3);, 2) Next _GUICtrlListView_SortItems($Colonnes_Paris_Actuels, 0) EndIf Else GUICtrlSetState($SommeDeDepart, $GUI_UNCHECKED) GUICtrlSetData($SommeDepart, "") EndIf EndFunc ;==>MajParis ; #################################################################################################### Func MajParis_INI() ; Lecture du tableau $Nombre_Lignes = _GUICtrlListView_GetItemCount($Colonnes_Paris_Actuels) If $OuvertureFichier = 1 Then If FileExists(@ProgramFilesDir & "\Paris sportifs\Paris.ini") Then $Derniere_Section = IniReadSectionNames(@ProgramFilesDir & "\Paris sportifs\Paris.ini") Else ; Si le fichier d'origine "Paris.ini" ET aucun autre fichier de paris n'a été ouvert dans le logiciel (soit aucun fichier), ; on peut alors quitter la fonction. Return EndIf Else $Derniere_Section = IniReadSectionNames($OuvertureFichier) EndIf IniDelete(@ProgramFilesDir & "\Paris sportifs\Paris.ini", $Derniere_Section[$Derniere_Section[0]]) IniWriteSection(@ProgramFilesDir & "\Paris sportifs\Paris.ini", $Derniere_Section[$Derniere_Section[0]], "") For $i = 0 To $Nombre_Lignes -1 $Cle_Mise = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 1) $Valeur_Cote = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 2) ; Modification du fichier "Paris.ini" IniWrite(@ProgramFilesDir & "\Paris sportifs\Paris.ini", $Derniere_Section[$Derniere_Section[0]], $Cle_Mise[3], $Valeur_Cote[3]) Next ; Mise à jour de la somme actuelle $LectureClesIni = IniReadSection(@ProgramFilesDir & "\Paris sportifs\Paris.ini", $Derniere_Section[$Derniere_Section[0]]) If Not @error Then For $i = 1 To $LectureClesIni[0][0] $MAJ_SommeActuelle += $LectureClesIni[$i][0] Next EndIf $Lecture_Somme_Base = RegRead("HKLM\SOFTWARE\Paris sportifs", "Somme de base") GUICtrlSetData($Label_Somme_Actuelle_2, $Lecture_Somme_Base - $MAJ_SommeActuelle) RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme actuelle", "REG_SZ", $Lecture_Somme_Base - $MAJ_SommeActuelle) EndFunc ;==>MajParis_INI ; #################################################################################################### Func AjoutPari() $Lecture_Somme = RegRead("HKLM\SOFTWARE\Paris sportifs", "Somme actuelle") If GUICtrlRead($Cote) <> "" And GUICtrlRead($Cote) <> "0" And GUICtrlRead($Zone_Somme_Maximale) <> "" And GUICtrlRead($Zone_Somme_Maximale) <> "0" And GUICtrlRead($Zone_Somme_Maximale) <= $Lecture_Somme Then If StringInStr(GUICtrlRead($Zone_Somme_Maximale), ",") Then $CorrectionVirgule = StringReplace(GUICtrlRead($Zone_Somme_Maximale), ",", ".") EndIf $Nombre_Lignes = _GUICtrlListView_GetItemCount($Colonnes_Paris_Actuels) ConsoleWrite( " gjhfkdl " & $Nombre_Lignes & @CRLF) $Ligne_Paris = _GUICtrlListView_AddItem($Colonnes_Paris_Actuels, "10", $Nombre_Lignes) $Ligne_Paris1 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, GUICtrlRead($Zone_Somme_Maximale), 1, 1) $Ligne_Paris2 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, GUICtrlRead($Cote), 2, 1) $Ligne_Paris3 = _GUICtrlListView_AddSubItem($Colonnes_Paris_Actuels, $Nombre_Lignes, Round(GUICtrlRead($Zone_Somme_Maximale) * GUICtrlRead($Cote), 2), 3, 2) ; Trie des lignes _GUICtrlListView_SortItems($Colonnes_Paris_Actuels, 0) $Derniere_Section = IniReadSectionNames(@ProgramFilesDir & "\Paris sportifs\Paris.ini") IniWrite(@ProgramFilesDir & "\Paris sportifs\Paris.ini", $Derniere_Section[$Derniere_Section[0]], GUICtrlRead($Zone_Somme_Maximale), GUICtrlRead($Cote)) $Nouvelle_Somme_Actuelle = $Lecture_Somme - GUICtrlRead($Zone_Somme_Maximale) GUICtrlSetData($Label_Somme_Actuelle_2, $Nouvelle_Somme_Actuelle) GUICtrlSetBkColor($Cote, 0xFFFFFF) GUICtrlSetBkColor($Zone_Somme_Maximale, 0xFFFFFF) RegWrite("HKLM\SOFTWARE\Paris sportifs", "Somme actuelle", "REG_SZ", $Nouvelle_Somme_Actuelle) Else If GUICtrlRead($Cote) = "" And GUICtrlRead($Cote) = 0 Then GUICtrlSetBkColor($Cote, 0xFF7F7F) GUICtrlSetCursor($Cote, -1) Else GUICtrlSetBkColor($Cote, 0xFFFFFF) EndIf If GUICtrlRead($Zone_Somme_Maximale) = "" And GUICtrlRead($Zone_Somme_Maximale) < 0.5 Then GUICtrlSetBkColor($Zone_Somme_Maximale, 0xFF7F7F) Else GUICtrlSetBkColor($Zone_Somme_Maximale, 0xFFFFFF) EndIf EndIf EndFunc ;==>AjoutPari Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg, $iwParam Local $hWndFrom, $iCode, $tNMHDR, $hWndListView, $tInfo, $iIDFrom Local $LectureClesIni $hWndListView = $Colonnes_Paris_Actuels If Not IsHWnd($Colonnes_Paris_Actuels) Then $hWndListView = GUICtrlGetHandle($Colonnes_Paris_Actuels) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $LVN_BEGINLABELEDIT, $LVN_BEGINLABELEDITW ; Start of label editing for an item $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam) Return False ; Allow the user to edit the label ;Return True ; Prevent the user from editing the label Case $NM_CLICK $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam) $Nombre_Lignes = _GUICtrlListView_GetItemCount($Colonnes_Paris_Actuels) For $i = 0 To $Nombre_Lignes -1 $Cle_Mise = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 1) $Valeur_Cote = _GUICtrlListView_GetItem($Colonnes_Paris_Actuels, $i, 2) _GUICtrlListView_SetItem($Colonnes_Paris_Actuels, Round($Cle_Mise[3] * $Valeur_Cote[3], 2), $i, 3) ; Gain possible Next Case $NM_DBLCLK $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam) $Burner_LI = DllStructGetData($tInfo, "Item") $Burner_LSI = DllStructGetData($tInfo, "SubItem") $Burner_LIX = DllStructGetData($tInfo, "Index") Local $aHit = _GUICtrlListView_SubItemHitTest($hWndFrom) If ($aHit[0] <> -1) And ($aHit[1] >= 0) And DllStructGetData($tInfo, "Item") <> 3 Then $LVHit = $hWndFrom $Item = $aHit[0] $SubItem = $aHit[1] Local $CGP = ControlGetPos($Fenetre, "", $hWndFrom) Local $iSubItemText = _GUICtrlListView_GetItemText($hWndFrom, $Item, $SubItem) Local $iLen = _GUICtrlListView_GetStringWidth($hWndFrom, $iSubItemText) Local $aRect = _GUICtrlListView_GetSubItemRect($hWndFrom, $Item, $SubItem) If $aRect[0] = 0 Then $Longueur = _GUICtrlListView_GetColumnWidth($hWndFrom,1)/2 ElseIf $aRect[0] = 60 Then $Longueur = _GUICtrlListView_GetColumnWidth($hWndFrom,2)/2 ElseIf $aRect[0] = 210 Then $Longueur = _GUICtrlListView_GetColumnWidth($hWndFrom,4)/2 ElseIf $aRect[0] = 240 Then $Longueur = _GUICtrlListView_GetColumnWidth($hWndFrom,5)/2 EndIf $hEdit = _GUICtrlEdit_Create($Fenetre, $iSubItemText, $CGP[0] + $aRect[0] + $Longueur - (($iLen + 10) /2) +3, ($CGP[1] + $aRect[1]) - 1, $iLen + 10, 16, BitOR($WS_CHILD, $WS_VISIBLE, $ES_AUTOHSCROLL, $ES_LEFT)) _GUICtrlEdit_SetSel ($hEdit, 0, -1) _WinAPI_SetFocus ($hEdit) $hDC = _WinAPI_GetWindowDC ($hEdit) $hBrush = _WinAPI_CreateSolidBrush (0) FrameRect($hDC, 0, 0, $iLen + 10, 16, $hBrush) _WinAPI_DeleteObject ($hBrush) _WinAPI_ReleaseDC ($hEdit, $hDC) EndIf EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func FrameRect($hDC, $nLeft, $nTop, $nRight, $nBottom, $hBrush) Local $stRect = DllStructCreate("int;int;int;int") DllStructSetData($stRect, 1, $nLeft) DllStructSetData($stRect, 2, $nTop) DllStructSetData($stRect, 3, $nRight) DllStructSetData($stRect, 4, $nBottom) DllCall("user32.dll", "int", "FrameRect", "hwnd", $hDC, "ptr", DllStructGetPtr($stRect), "hwnd", $hBrush) EndFunc ;==>FrameRect Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam) Local $iCode = BitShift($wParam, 16) Switch $lParam Case $hEdit Switch $iCode Case $EN_KILLFOCUS Local $iText = _GUICtrlEdit_GetText ($hEdit) _GUICtrlListView_SetItemText ($LVHit, $Item, $iText, $SubItem) _WinAPI_DestroyWindow ($hEdit) $Item = -1 $SubItem = 0 $LVHit = 0 EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND ; Dessine l'image PNG Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam) _WinAPI_RedrawWindow($Fenetre, 0, 0, $RDW_UPDATENOW) _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 278, 108) _WinAPI_RedrawWindow($Fenetre, 0, 0, $RDW_VALIDATE) Return $GUI_RUNDEFMSG EndFunc tell me what you think, and if you have any questions, ask me Thank you in advance Qui ose gagneWho Dares Win[left]CyberExploit[/left]
jerem488 Posted November 3, 2009 Author Posted November 3, 2009 That anyone interested? Qui ose gagneWho Dares Win[left]CyberExploit[/left]
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now