Page 1 sur 1

Problème listview

Publié : ven. 15/avr./2011 19:38
par aleo
Bonjour,

Voilà, c'est encore moi =)
Cette fois encore, j'ai un problème.
J'ai créer une listview. J'écris une ligne dessus. Mais je n'arrive pas à effacer une ligne que je sélectionne dans le listview...

Merci de m'aider =)

Re: Problème listview

Publié : ven. 15/avr./2011 19:52
par Chris
SetGadgetItemText(#List, GetGadgetState(#List), "")

Re: Problème listview

Publié : ven. 15/avr./2011 20:01
par aleo
Merci de cette réponse rapide !

Je regarde ça demain


Bonne soirée,

Aleo

Re: Problème listview

Publié : sam. 16/avr./2011 9:24
par aleo
Je reposte ici. Je vais essayer de me faire comprendre, mais c'est pas gagné...


Je fais un programme qui enregistre dans un .txt ce que j'écris dans un #string, et qui y affiche dans un #listview. Le texte que je rentre dans le #string n'est pas fixe, c'est à dire que le nombre de validation de texte n'est pas fixe.
Sauf que dans la boucle d'enregistrement de la chaîne dans le .txt, je sais pas comment faire un retour a la ligne. J'ai essayer avec char(10), FileSeek(#ini, Eof(#ini)), mais sa ne marche pas.
Et aussi un truc que je n'arriverai surement pas faire :
effacer une ligne dans mon #listview, avec "SetGadgetItemText(#List, GetGadgetState(#List), "")", mais aussi dans mon .txt, si il y a 10 lignes, et que je veux supprimer la 1ère.

Voici mon code :
txt$ = dossier$ + "/" + fichier$

Code : Tout sélectionner

  If OpenFile(#ini, "bin/essaie.txt")
      FileSeek(#ini, Eof(#ini))
      WriteStringN(#ini,txt$ );+ Chr(10))
    EndIf
    SetGadgetText(#String_3,"")
    SetGadgetText(#String_4,"")
    AddGadgetItem(#Listview_1,-1,dossier$)
    AddGadgetItem(#Listview_2,-1,fichier$)
Merci de votre aide

Aleo

Re: Problème listview

Publié : sam. 16/avr./2011 11:52
par venom
Bonjour aleo,

pourrais tu stp donner un code complet (fonctionnel) ? Pour nous voir plus vite plutot que de devoir ce retaper un code :wink:
ça serai sympa merci.






@++

Re: Problème listview

Publié : sam. 16/avr./2011 12:46
par Chris
C'est un truc dans ce genre là que tu veux?
(Fait à l'arrache en 10 minutes, alors cherchez pas la petite bête)

Code : Tout sélectionner

; PureBasic Visual Designer v3.95 build 1485 (PB4Code)

;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Listview_0
  #String_0
  #Button_0
  #Button_1
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 400, 52, 381, 425, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      ListViewGadget(#Listview_0, 10, 0, 360, 350)
      StringGadget(#String_0, 10, 360, 360, 20, "")
      ButtonGadget(#Button_0, 10, 390, 180, 30, "Enregistrer dans la liste")
      ButtonGadget(#Button_1, 200, 390, 170, 30, "Effacer la  sélection")
      
    EndIf
  EndIf
EndProcedure

Procedure SaveFile(Fichier$)
  If CreateFile(0, Fichier$)
    For i = 0 To CountGadgetItems(#Listview_0)
      WriteStringN(0, GetGadgetItemText(#Listview_0, i))
    Next
    CloseFile(0)
  EndIf
  
EndProcedure

Open_Window_0()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Quit = 1
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Button_0
          If GetGadgetText(#String_0) <> ""
            AddGadgetItem(#Listview_0, -1, GetGadgetText(#String_0))
            SaveFile("C:\MonFichier.txt")
            SetGadgetText(#String_0, "")
          EndIf
          
        Case #Button_1
          If GetGadgetState(#Listview_0) <> -1
            RemoveGadgetItem(#Listview_0, GetGadgetState(#Listview_0))
            SaveFile("C:\MonFichier.txt")
          EndIf
          
        Case #Listview_0
          
      EndSelect
  EndSelect
  
Until Quit
End

Re: Problème listview

Publié : sam. 16/avr./2011 13:33
par aleo
C'est exactement ça =)

Merci Chris.

Venom : je le montrerai plus tard, pour le moment, ce n'est qu'une esquisse de programme lol.
Il doit faire a peine 200 lignes, et a 1/4 fini... J'avance comme je peux ^^


Merci,

Aleo

Re: Problème listview

Publié : sam. 16/avr./2011 21:55
par Chris
Pour recharger ton fichier à l'ouverture du programme, tu peux faire une procédure comme ça :

Code : Tout sélectionner

Procedure LoadFile(Fichier$)
  If ReadFile(0, Fichier$)
    While Eof(0) = 0
      AddGadgetItem(#Listview_0, -1, ReadString(0))
    Wend
    CloseFile(0)
  EndIf
EndProcedure
avec un "LoadFile("C:\MonFichier.txt")" après l'ouverture de la fenêtre

Ce genre de procédure va à peu près pour des fichier de taille réduite.
Pour des fichiers beaucoup plus gros, le temps de chargement peut devenir plutôt long.

Re: Problème listview

Publié : dim. 17/avr./2011 14:23
par aleo
Tu es a coté de moi ou quoi ?
J'allais justement faire un programme qui allais utiliser cette procédure...

Trop fort x)

Merci,

Aleo