Bonjour a tous,
J'expose mon problème je travaille sur un logiciel de connexion entre PC,
Et j'affiche dans une ListBox la liste des connectes et se non connectes,
Je récuppérre le nom de tous les contactes sur un .ini puis je l'affiche,
mais pour améliorer la rapidité et le visuel(l'original marche mais les noms clignote)
j'ai donc commencer a taper du code puis j'ai pu garder les nom et les modifier si l'on changer de statut, mais en supprimant un contact avec la fonction prévu on garde le nom dans la liste il faut redémarrer pour que sa ne l'affiche pas...
Je sait que c'est peu être confus mais j'aurais essayer d'expliquer au mieux que je peut !
Voila le code :
List1 = Connecter
List2 = Non Connecter
► Afficher le texteCode
Code : Tout sélectionner
If TimerDiff($timer) >= 2000 Then ;~ Donc a chaque fois que 2sec son passer bien on execute
$ReadSec = IniReadSection("Conf.INI","LIST") ;~ Je lie le .ini
For $i = 1 to $ReadSec[0][0]
$ValeurC = $ReadSec[$i][1]
$CleC = $ReadSec[$i][0]
$TestPing = WMI_Ping($ValeurC,32,false,0,true) ;~ On teste le ping avec une fonction prévu...
If $TestPing <> 0 Then
$InDexE = _GUICtrlListBox_FindInText($List1,$CleC)
If $InDexE = -1 Then ;~ Si il le nom est déjà inscrit on fait rien sinon
$InDex = _GUICtrlListBox_FindInText($List2,$CleC) ;~ Si il le nom est dans les non connecter on le met dans la list1
If $InDex = -1 Then ;~ Sinon on l'ajoute
_GUICtrlListBox_AddString($List1,$CleC&"("&$ValeurC&")")
$Str = _GUICtrlListBox_FindInText($List1,$CleC&"("&$ValeurC&")")
_GUICtrlListBox_SetSel($List1,$Str)
Else
_GUICtrlListBox_DeleteString($List2,$InDex)
_GUICtrlListBox_AddString($List1,$CleC&"("&$ValeurC&")")
$Str = _GUICtrlListBox_FindInText($List1,$CleC&"("&$ValeurC&")")
_GUICtrlListBox_SetSel($List1,$Str)
EndIf
Else
_GUICtrlListBox_SetSel($List1,$InDexE)
EndIf
Else
$InDexE = _GUICtrlListBox_FindInText($List2,$CleC)
If $InDexE = -1 Then
$InDex = _GUICtrlListBox_FindInText($List1,$CleC)
If $InDex = -1 Then
_GUICtrlListBox_AddString($List2,$CleC)
$Str = _GUICtrlListBox_FindInText($List2,$CleC)
_GUICtrlListBox_SetSel($List2,$Str)
Else
_GUICtrlListBox_DeleteString($List1,$InDex)
_GUICtrlListBox_AddString($List2,$CleC)
$Str = _GUICtrlListBox_FindInText($List2,$CleC)
_GUICtrlListBox_SetSel($List2,$Str)
EndIf
Else
_GUICtrlListBox_SetSel($List2,$InDexE)
EndIf
EndIf
Next
$Cont1 = _GUICtrlListBox_GetCount($List1) ;~ la je veut filtrer, pour que il n'y a que les noms contenu dans le .ini donc on supprime se qui est en trop ici, mais sa bug !
Car enfaîte avec la fonction supprime, il enlève le nom donc la clé puis comme je ne veut pas effacé tous le contenu de la listbox je veut supprimer les reste...
$Cont2 = _GUICtrlListBox_GetCount($List2)
For $i = -1 To $Cont1
$ListD = _GUICtrlListBox_GetSel($List1,$i)
If $ListD = False Then
_GUICtrlListBox_DeleteString($List1,$i)
EndIf
Next
For $i = -1 To $Cont2
$ListD = _GUICtrlListBox_GetSel($List2,$i)
If $ListD = False Then
_GUICtrlListBox_DeleteString($List2,$i)
EndIf
Next
$timer = TimerInit()
EndIf
En gros je n'arrive pas a faire un filtre en quelque sorte....
Merci d'avance.