[R] Supprimer une valeur d'un tableau GUICtrlListView()

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

[R] Supprimer une valeur d'un tableau GUICtrlListView()

#1

Message par mica2727 »

Bonjour,
Et oui encore moi :lol:
Mais pour une fois j'y comprends rien...

Donc j'ai créer un tableau avec :

Code : Tout sélectionner

Global $mbr = GUICtrlCreateListView("", 552, 79, 140, 361,$LVS_SORTASCENDING)
_GUICtrlListView_AddColumn(-1,"Membres connectés",136)
Ensuite dans mes commandes j'ai une fonction pour ajouter ou enlever un tableau c'est la ou ça coince.

Code : Tout sélectionner

Func _addMbr($mbr,$membre)
    _GUICtrlListView_AddItem($mbr,$membre)
EndFunc

Func _delMbr($mbr,$membre)
    _GUICtrlListView_DeleteItem($mbr,_GUICtrlListView_FindText($mbr,$membre))
EndFunc
La fonction _addMbr() fonctionne correctement est ajoute bien un objet.
La fonction _delMbr() ne veut pas supprimer un objet créer avec AddItem.
Alors que pourtant le ZIndex renvoie bien la bonne case, j'y comprends rien, je me serais trompé quelque pars mais ou...

Merci d'avance.
Modifié en dernier par mica2727 le lun. 21 oct. 2013 12:40, modifié 1 fois.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Supprimer une valeur d'un tableau GUICtrlListView()

#2

Message par jguinch »

Essai comme ça :

Code : Tout sélectionner

Func _delMbr($mbr,$membre)
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($mbr) ,_GUICtrlListView_FindText($mbr,$membre))
EndFunc
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Supprimer une valeur d'un tableau GUICtrlListView()

#3

Message par mikell »

En fait bien que les fonctions _GUICtrlListView* soient censées accepter les IDs il vaut généralement mieux utiliser des handles pour éviter des surprises

Code : Tout sélectionner

$mbr = GUICtrlCreateListView("", 552, 79, 140, 361, $LVS_SORTASCENDING)
$hmbr = GUICtrlGetHandle($mbr)

; puis utiliser $hmbr dans les fonctions _GUICtrlListView*
Aussi il est déconseillé d'utiliser le même nom pour une variable globale et une locale
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
mica2727
Niveau 4
Niveau 4
Messages : 82
Enregistré le : jeu. 03 oct. 2013 17:32
Status : Hors ligne

Re: [..] Supprimer une valeur d'un tableau GUICtrlListView()

#4

Message par mica2727 »

Merci ça marche niquel, et oui pour la global $mbr.
En faite ça renvoyer le handle dans la fonction, vu qu'avant elle n'étais pas global, mais je les supprimer car désormais en étant globale, la fonction peut directement la prendre.

Merci à vous ! une nouvelle fois, vous êtes un super forum. 8)
Répondre