Listicongadget

Programmation d'applications complexes
Cagou-77
Messages : 79
Inscription : dim. 15/août/2004 13:27

Listicongadget

Message par Cagou-77 »

Bonjour,

se pourrait-il qu'un pro de PureBasic puisse me créer une listicongadget pour trier et rechercher des données.

EXEMPLE :
Clic sur l'entête de la colonne, on trie les données, et on affiche un striggadget à la place de l'entête de colonne pour rechercher une donnée dans la colonne sélectionnée.

cela fait des jours que je me creuse la tête mais je n'y arrive pas et je n'ai pas trouver l'exemple qui convient sur le forum .

se serait sympa de votre part

Merci d'avance.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Il y a une library qui fait exactement ce dont tu as besoin :

http://people.freenet.de/gnozal/
http://people.freenet.de/gnozal/PureLVSORT.zip

Je l'utilise depuis longtemps, elle est très bien tu verras ;-)
Image
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Ce n'est peut-être pas vraiment ce que tu cherches mais cela devrait quand même te donner des pistes.
Ce n'est pas un exemple fonctionnel, mais deux méthodes d'utilisation, l'une pour rechercher un élément dans une listicon et l'autre pour modifier un élément dans la listicon. A adapter en fonction de ce que tu veux.



;Recherche d'un élément dans une ListIcon, dans n'importe quelle colonne.
;Tu colle cette procédure avant ta fenêtre en la modifiant en fonction de ton code
;l'item correspondant à la recherche sera sélectionné si trouvé.
Procedure FindStringList(searchString.s,NbColumns) ;Procédure de Chris
   For Colonne = 0 To NbColumns -1
     For Ligne = 0 To CountGadgetItems ( #ListIcon )
       If GetGadgetItemText ( #ListIcon ,Ligne,Colonne) = searchString
         SetGadgetItemState ( #ListIcon ,Ligne, #PB_ListIcon_Selected )
         SendMessage_ ( GadgetID ( #ListIcon ), #LVM_ENSUREVISIBLE ,Ligne, #True )
        Break 2
       EndIf
     Next
   Next
   If GetGadgetItemText ( #ListIcon ,Ligne,Colonne) <> searchString
     MessageRequester ( "RECHERCHE INFRUCTUEUSE" , "ELEMENT INCONNU" + Chr (13)+ "Vous devriez recommencer avec un autre élément" , #MB_ICONEXCLAMATION )
   EndIf
EndProcedure
;Dans ta boucle tu lance la recherche ainsi ( 7 correspond au nombre de colonnes de la listicon.)
Case #btn_SearchInListicon : FindStringList( GetGadgetText ( #String_search ),7) ; #String_search correspond à un StringGadget() de saisie de la recherche

;-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

;Pour sélectionner la colonne où tu veux modifier un élément tu utilises une ComboBox répertoriant les noms
;de tes colonnes de listicon. Il faut qu'ils soient identiques (sensibles à la casse)
   ;exemple : dans ta fenêtre....
    ComboBoxGadget ( #SelectColonne , 0, 142, 130, 120) ;,#PB_ComboBox_Editable)
     AddGadgetItem ( #SelectColonne , -1, "Nom" )
     AddGadgetItem ( #SelectColonne , -1, "Prénom" )
     AddGadgetItem ( #SelectColonne , -1, "Adresse" )
     AddGadgetItem ( #SelectColonne , -1, "e-mail" )
     AddGadgetItem ( #SelectColonne , -1, "Téléphone" )
     AddGadgetItem ( #SelectColonne , -1, "Âge" )
     AddGadgetItem ( #SelectColonne , -1, "Sexe" )
     AddGadgetItem ( #SelectColonne , -1, "Planète" )
    
   ; dans ta boucle...
;Une fois que tu as sélectionné une colonne
;Un clic droit sur l'élément à modifier.
Case #ListIcon
  Resultat$ = GetGadgetText ( #SelectColonne )
   If Resultat$ = "Nom" : Colonne=0
   ElseIf Resultat$= "Prénom" : Colonne=1
   ElseIf Resultat$= "Adresse" : Colonne=2
   ElseIf Resultat$= "e-mail" : Colonne=3
   ElseIf Resultat$= "Téléphone" : Colonne=4
   ElseIf Resultat$= "Âge" : Colonne=5
   ElseIf Resultat$= "Sexe" : Colonne=6
   ElseIf Resultat$= "Planète" : Colonne=7
   EndIf
  Pos = GetGadgetState ( #ListIcon )
   If Pos >= 0
   If EventType () = #PB_EventType_RightClick
   Txt.s = InputRequester ( "MODIFICATION D'UN ELEMENT" , "Entrez vos modifications :" , GetGadgetItemText ( #ListIcon , Pos, Colonne))
   SetGadgetItemText ( #ListIcon , Pos, Txt, Colonne)
   EndIf
EndIf



Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Répondre