Page 1 sur 1

limiter la recherche entre la 2ème et 3ème colonne

Publié : mar. 26/sept./2006 12:59
par SpaceMan
slt à tous c'est encore moi ceci est un bout de code que je voudrais utiliser mais j'ai un problème:
je veux limiter la recherche entre la 2ème et 3ème colonne et j'y arrive pas
please help me
thank !

Code : Tout sélectionner

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=1032&highlight=
; Author: FloHimself
; Date: 16. May 2003

#Window_0 = 0 
#Gadget_0 = 0 
#Gadget_1 = 1 
#Gadget_2 = 2 

Procedure FindStringLIG(searchString.s) 

  SendMessage_(GadgetID(#Gadget_0), #LVM_FIRST + $54, $8, 1) 

  fItem.LV_FINDINFO 
  fItem\flags   = #LVFI_STRING
  fItem\psz     = @searchString 

  itemNumber = SendMessage_(GadgetID(#Gadget_0), #LVM_FINDITEM, -1, fItem) ; find Item 
  
  If itemNumber > -1 
    Goto SCROLL_AND_SELECT 
  Else 
    For a = 0 To CountGadgetItems(#Gadget_0) -1  
      If searchString = GetGadgetItemText(#Gadget_0, a, 1) 
        itemNumber = a
        Goto SCROLL_AND_SELECT 
      EndIf 
    Next 
  EndIf 
  
  Goto PROC_ERROR 

  SCROLL_AND_SELECT: 
    pItem.POINT 

    SendMessage_(GadgetID(#Gadget_0), #LVM_GETITEMPOSITION, itemNumber , pItem) ; get item position 
    SendMessage_(GadgetID(#Gadget_0), #LVM_SCROLL, pItem\x, pItem\y - 150)     ; scroll to item position 

    sItem.LV_ITEM 
    sItem\mask      = #LVIF_STATE 
    sItem\state     = #LVIS_SELECTED 
    sItem\stateMask = #LVIS_SELECTED 

    SendMessage_(GadgetID(#Gadget_0), #LVM_SETITEMSTATE, itemNumber , sItem)    ; set item state as selected      
    Goto PROC_END 
  
  PROC_ERROR: 
    MessageRequester("Recherche", "L'élément '" + searchString + "' ne figure pas dans la liste ", #MB_ICONEXCLAMATION | #MB_OK)  
  
  PROC_END: 
EndProcedure 

Procedure Open_Window_0() 
  If OpenWindow(#Window_0, 283, 124, 325, 314,  "Recherche dans la ListViewGadget", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar) 
    If CreateGadgetList(WindowID(#Window_0)) 
      ListIconGadget(#Gadget_0, 0, 0, 325, 270, "Numero", 100, #PB_ListIcon_AlwaysShowSelection |#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect) 
        AddGadgetColumn(#Gadget_0, 1, "Exo", 100) 
         AddGadgetColumn(#Gadget_0, 2, "Résultat", 100)
        For a = 0 To 200 
AddGadgetItem(#Gadget_0, -1 ,Str(a) + Chr(10) + "Exo" + Str(a)+Chr(10)+ "Vrai"+ Str(a)) 
        Next 
        
      ButtonGadget(#Gadget_1, 160, 280, 140, 20, "Chercher") 
      StringGadget(#Gadget_2, 10, 280, 140, 20, "") 
    EndIf 
  EndIf 
EndProcedure 

Open_Window_0() 

Repeat 
 ;fermeture de la fenetre principale avec la croix de la fenetre 
Select WaitWindowEvent()
   Case #PB_Event_CloseWindow 
   Sortie = 1
Case #PB_Event_Gadget 
   Select EventGadget() 
      Case #Gadget_1 
        FindStringLIG(GetGadgetText(#Gadget_2)) 
EndSelect
  EndSelect 
  
Until Sortie = 1
End

Publié : mar. 26/sept./2006 15:12
par brossden
Voilà :

Code : Tout sélectionner

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=1032&highlight=
; Author: FloHimself
; Date: 16. May 2003

#Window_0 = 0
#Gadget_0 = 0
#Gadget_1 = 1
#Gadget_2 = 2

Procedure FindStringLIG(searchString.s)

  
  For a = 0 To CountGadgetItems(#Gadget_0) -1 
    If searchString = GetGadgetItemText(#Gadget_0, a, 1)
      itemNumber = a
      Goto SCROLL_AND_SELECT
    EndIf
  Next
  For a = 0 To CountGadgetItems(#Gadget_0) -1 
    If searchString = GetGadgetItemText(#Gadget_0, a, 2)
      itemNumber = a
      Goto SCROLL_AND_SELECT
    EndIf
  Next
  
  
  Goto PROC_ERROR
  
  SCROLL_AND_SELECT:
  pItem.POINT
  
  SendMessage_(GadgetID(#Gadget_0), #LVM_GETITEMPOSITION, itemNumber , pItem) ; get item position
  SendMessage_(GadgetID(#Gadget_0), #LVM_SCROLL, pItem\X, pItem\Y - 150)     ; scroll to item position
  
  sItem.LV_ITEM
  sItem\mask      = #LVIF_STATE
  sItem\state     = #LVIS_SELECTED
  sItem\stateMask = #LVIS_SELECTED
  
  SendMessage_(GadgetID(#Gadget_0), #LVM_SETITEMSTATE, itemNumber , sItem)    ; set item state as selected     
  Goto PROC_END
  
  PROC_ERROR:
  MessageRequester("Recherche", "L'élément '" + searchString + "' ne figure pas dans la liste ", #MB_ICONEXCLAMATION | #MB_OK) 
  
  PROC_END:
EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 283, 124, 325, 314,  "Recherche dans la ListViewGadget", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar)
    If CreateGadgetList(WindowID(#Window_0))
      ListIconGadget(#Gadget_0, 0, 0, 325, 270, "Numero", 100, #PB_ListIcon_AlwaysShowSelection |#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
      AddGadgetColumn(#Gadget_0, 1, "Exo", 100)
      AddGadgetColumn(#Gadget_0, 2, "Résultat", 100)
      For a = 0 To 200
        AddGadgetItem(#Gadget_0, -1 ,Str(a) + Chr(10) + "Exo" + Str(a)+Chr(10)+ "Vrai"+ Str(a))
      Next
      
      ButtonGadget(#Gadget_1, 160, 280, 140, 20, "Chercher")
      StringGadget(#Gadget_2, 10, 280, 140, 20, "")
    EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat
  ;fermeture de la fenetre principale avec la croix de la fenetre
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Sortie = 1
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Gadget_1
          FindStringLIG(GetGadgetText(#Gadget_2))
      EndSelect
  EndSelect
  
Until Sortie = 1
End 

thanks

Publié : mar. 26/sept./2006 23:12
par SpaceMan
Merci à toi Denis ben c'est toujours toi qui me sauve :)

Re: thanks

Publié : mer. 27/sept./2006 0:57
par SPH
SpaceMan a écrit :Merci à toi Denis ben c'est toujours toi qui me sauve :)
Moi, j'aide d'autant plus facilement quand on m'explique concretement le probleme. Hors, je lis dans ton premier post :
slt à tous c'est encore moi ceci est un bout de code que je voudrais utiliser mais j'ai un problème:
je veux limiter la recherche entre la 2ème et 3ème colonne et j'y arrive pas
please help me
thank !
Je n'y vois AUCUNE explication !

Je ne dis pas ca mechament... :wink:

Pourtant pas compliqué ce que je voulais dire

Publié : jeu. 28/sept./2006 16:57
par SpaceMan
salut SPH

il aurait falu juste exécuter le code pour comprendre ma requete
je veux limiter la recherche entre la 2ème et 3ème colonne et j'y arrive pas
en fait je sais que je vais avoir besoin de tout le monde et pourquoi pas toi en particulier... :lol:

Publié : jeu. 28/sept./2006 17:34
par SPH
Ok je regarde ca :lol: