Moteur de recherche ListIconGadget (exemple)
Publié : lun. 09/août/2010 0:46
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
. 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.
voilà je n'ai pas tester avec du texte mais ça doit fonctionné.
@++
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

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
@++