Moteur de recherche ListIconGadget (exemple)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Moteur de recherche ListIconGadget (exemple)

Message par venom »

Bonsoir,

voilà ne sachant pas quoi faire ce soir je me suis dit tiens pourquoi pas essayé de faire un petit moteur de recherche basic pour les ListIconGadget.
je n'ai pas regarder sur le forum si cela a déjà était fait (je pense que si), j'avais envie de faire ça :P . Et tant qu'a faire je l'ai un petit peut commenter et je vous donne la source au cas ou une amelioration ou un besoin, ont ne sais jamais.

Code : Tout sélectionner

;- programmer par venom PureBasic 4.50
;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #String_0
  #Button_0
  #ListIcon_0
EndEnumeration

If OpenWindow(#Window_0, 0, 0, 450, 290, "Moteur de recherche ListIconGadget", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
  StringGadget(#String_0, 10, 10, 290, 20, "")
  ButtonGadget(#Button_0, 310, 10, 130, 20, "Recherche Nom")
  ;-
  ListIconGadget(#ListIcon_0, 10, 40, 430, 240, "Nom", 300, #PB_ListIcon_FullRowSelect)
  AddGadgetColumn(#ListIcon_0, 1, "Adresse", 250)
  For a = 0 To 122
    AddGadgetItem(#ListIcon_0, a, Str(a) + Chr(10) + Str(a * 2))
  Next
EndIf

Repeat
  EventID = WaitWindowEvent()
  If EventID = #PB_Event_Gadget
    Select EventGadget()
        
      Case #Button_0
        For position = 0 To CountGadgetItems(#ListIcon_0)
          SetGadgetItemColor(#ListIcon_0, position, #PB_Gadget_BackColor, $FFFFFF, -1) ;- remet le fond en blanc (après une recherche trouvé)
          SetGadgetItemColor(#ListIcon_0, position, #PB_Gadget_FrontColor, $000000, -1) ;- remet le texte en noir (après une recherche trouvé)

          If CountString(GetGadgetItemText(#ListIcon_0, position, 0), GetGadgetText(#String_0)) = 0 ;- on cherche le texte dans le ListIconGadget tant que CountString egale 0
            CountString(GetGadgetItemText(#ListIcon_0, position + 1, 0), GetGadgetText(#String_0)) ;- si CountString egale 0 ont descend d'un cran dans le ListIconGadget
          ElseIf CountString(GetGadgetItemText(#ListIcon_0, position, 0), GetGadgetText(#String_0)) = 1 ;- si CountString égale 1 ont arrête la recherche et ont regarde si la longueur du texte chercher est égale a la longueur trouvé ex: ont cherche 10 ont vérifie que la longueur trouvé est bien de 2 caractères si non la recherche va indiquer tout les chiffres commençant par 10 ex: 100, 101, 102 etc...
            longeur_chaine_a_trouver = Len(GetGadgetText(#String_0)) ;- la longueur du texte que l'ont recherche
            longeur_chaine_listIcon = Len(GetGadgetItemText(#ListIcon_0, position, 0)) ;- la longueur du texte trouvé dans ListIconGadget
            
            If longeur_chaine_listIcon > longeur_chaine_a_trouver ;- si la longueur trouvé dans ListIconGadget est supérieure a la plongeur chercher ont abandonne et ont continue la recherche
            ElseIf longeur_chaine_listIcon = longeur_chaine_a_trouver ;- si la longueur trouvé dans ListIconGadget est égale a la longueur rechercher c'est que nous avons trouvé notre texte, et nous allons l'indiquer a l'utilisateur
              SetGadgetState(#ListIcon_0, position) ;- ont renvoie la position du texte qui est dans  ListIconGadget et qui est égale a notre recherche, et si besoin cette dernière se place sans bouger la scrollbar
              SetGadgetItemColor(#ListIcon_0, position, #PB_Gadget_BackColor, $FF9922, -1) ;- ont sélectionne le résultat en bleu
              SetGadgetItemColor(#ListIcon_0, position, #PB_Gadget_FrontColor, $FFFFFF, -1) ;- et ont met le texte en blanc pour une meilleur visibilité
            EndIf
            
          EndIf
        Next
        
    EndSelect
  EndIf
Until EventID = #PB_Event_CloseWindow
voilà je n'ai pas tester avec du texte mais ça doit fonctionné.






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Re: Moteur de recherche ListIconGadget (exemple)

Message par Le psychopathe »

Oui sur du texte cela fonctionne, j'avais fait un petit annuaire avec listicon gadget et cela fonctionnait bien.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Moteur de recherche ListIconGadget (exemple)

Message par dayvid »

merci a toi venom, je vais étudier ton éxemple :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre