Page 2 sur 2

Re: [..] Mise à jour d'une Edit ?

Posté : lun. 26 mars 2012 18:55
par blacksoul305
mikell a écrit :Purée laisse tomber l'edit !!!
http://www.autoitscript.fr/forum/viewto ... 020#p65020
J'ai compris j'ai compris, pas la peine de me crier dessus tu sais... :oops: :cry: ( :lol: )

Re: [..] Mise à jour d'une Edit ?

Posté : mar. 27 mars 2012 18:07
par blacksoul305
###Double post volontaire###

Voilà, j'espère que c'est la dernière fois que ce sujet remonte. J'ai adopté une ListView qui est vachement plus facile à gérer, et je vous remercie d'ailleurs pour cette idée. Mon seul problème est la suppression de l'item et la section du ini correspondante. Pour plus d'informations, voici le fonctionnement nouveau du programme :

Premier bouton : Ajouter

Code : Tout sélectionner

$input = GUICtrlCreateInputbox() ; entrée du nom
$test = GUICtrlRead($input) ; on lit la valeur
IniWrite($ini,$test,"lol",1")
Second bouton : Supprimer

Je veux qu'avec ce bouton, l'item sélectionnée dans ma ListView soit supprimée, et la section ini correspondante aussi. Là on ne part pas avec un Array du au ini dès le départ, j'ai au contraire réussi à l'éviter, reste maintenant le problème de supprimer ma petite section. Je n'ai pas réussi à le faire par le biais de ton code, parce qu'il est basé sur l'array dès le départ. Désolé mon cher Mickell. Donc qui peux m'aider pour la seconde fonction qui est supprimer ?

Merci

Re: [..] Mise à jour d'une Edit ?

Posté : mer. 28 mars 2012 14:05
par Uranium
Tu peux faire comme j'ai fait pour créer des listes de lecture.

Tu écris tous à la suite en mettant des : pour séparer ( tu peux changer les : par un autre caractères ) et après tu fais come sa :
Exemple :

Code : Tout sélectionner

$i = 1
$t = StringSplit('Plop:Flop:Flap',':')
Local $rows = UBound($t)
For $i = 1 To $rows -1
MsgBox(0,'',$t[$i])
Next

Re: [..] Mise à jour d'une Edit ?

Posté : mer. 28 mars 2012 14:37
par Uranium
Voila un petit script pour te montrer dnas ton Edit , que je viens de faire :
► Afficher le texte
Dis-moi si sa te conviens :)
(Si tu es déjà en arrays pas la peine d'utiliser StringSlip )

Re: [..] Mise à jour d'une Edit ?

Posté : mer. 28 mars 2012 18:43
par blacksoul305
Merci pour les codes, je te conseille par contre d'éviter le double post, pense plutôt à un édit de ton premier post. Je vais étudier tes codes mais ça ne me plaît pas trop car je vais devoir changer tout le système du programme, chose que je fais en ce moment, et vu l'allure que ça prend, je ne préfère pas.
M'enfin, si tu souhaites continuer à m'aider, voilà comment ça marche :

- Lorsque l'utilisateur choisi un $qqch, on affiche $qqch dans la ListView en tant qu'item
(Fait)
- On écrit par la suite $qqch dans un ini en tant que nom de sections
(Fait)
- Si l'utilisateur sélectionne un $qqch présent dans la List, et qu'il le supprime, on l'enlève et on le supprime aussi de l'ini.
(Bloque)

Merci encore !

Re: [..] Mise à jour d'une Edit ?

Posté : mer. 28 mars 2012 20:08
par mikell
Maismaismais, je t'ai pourtant dit que la listview c'était facile :shock:
Je te signale que dans mon exemple précédent, si tu supprimes un item de la listview, ça le supprime aussi dans le ini
Maintenant tu peux aussi faire ça (pas testé mais ya aucune raison pour que ça marche pô) :

Code : Tout sélectionner

    Case $degage     [color=#008000] ; suppression d'item[/color]
        $index = ControlListView($gui, "", $listview, "GetSelected")    [color=#008000] ; récupère l'index de l'item[/color]
    $section_a_virer = ControlListView($gui, "", $listview, "GetText", $index)   [color=#008000] ; récupère le texte de l'item[/color]
        GUICtrlDelete($ligne[$index])    [color=#008000] ; vire la ligne dans la listview[/color]
        _ArrayDelete($ligne, $index)      [color=#008000] ; vire son handle de l'array des items[/color]
    IniDelete($ini, $section_a_virer)   [color=#008000] ; vire la section correspondante[/color]

Re: [..] Mise à jour d'une Edit ?

Posté : mer. 28 mars 2012 22:58
par blacksoul305
OMG, j'y suis enfin arrivé !! Merci tout d'abord à Mikell de s'être tant occupé de moi, Mikell, Tlem et Matwachich pour l'idée de la ListView. Mikell, Tlem et Uranium pour les codes fournis !
Voici comment j'y suis arrivé, grâce au code Mikell entre autre, et une fonction trouvée en faisant mes p'tites recherche, fonction créée par GaRydelaMer

Suppression de $qqch :

Code : Tout sélectionner

$ToSee = ControlListView($Form1_1,"",$ListView1,"GetSelected")
$ToDelete = ControlListView($Form1_1,"",$ListView1,"GetText",$ToSee)
My_GUICtrlListView_DeleteItem($ListView1,$ToSee)
IniDelete($ini, $ToDelete)
Fonction My_GUICtrlListView_DeleteItem() :

Code : Tout sélectionner

Func My_GUICtrlListView_DeleteItem($hWnd, $Item = -1)
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
    If $Item = -1 Then $Item = _GUICtrlListView_GetSelectedIndices($hWnd)
    _GUICtrlListView_DeleteItem($hWnd, $Item)
EndFunc   ;==>My_GUICtrlListView_DeleteItem
Bref, ça marche super bien maintenant avec une multitude de teste et d'ordre de suppression, tout marche au mieux. J'vais pouvoir le finaliser, encore merci à vous tous !

EDIT : Lien du post de la fonction originale, ici !