Problème listview

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
aleo
Messages : 22
Inscription : lun. 04/avr./2011 18:19

Problème listview

Message 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 =)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Problème listview

Message par Chris »

SetGadgetItemText(#List, GetGadgetState(#List), "")
aleo
Messages : 22
Inscription : lun. 04/avr./2011 18:19

Re: Problème listview

Message par aleo »

Merci de cette réponse rapide !

Je regarde ça demain


Bonne soirée,

Aleo
aleo
Messages : 22
Inscription : lun. 04/avr./2011 18:19

Re: Problème listview

Message 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
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Problème listview

Message 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.






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Problème listview

Message 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
aleo
Messages : 22
Inscription : lun. 04/avr./2011 18:19

Re: Problème listview

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Problème listview

Message 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.
aleo
Messages : 22
Inscription : lun. 04/avr./2011 18:19

Re: Problème listview

Message 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
Répondre