Page 1 sur 1

Un Message Pour Chris

Publié : dim. 01/janv./2006 21:35
par Cagou-77
D'abord une Trés Bonne Année 2006 à Tous.

voilà Chris, j'essai d'adapter un de tes codes pour la permutation des colonnes d'une listicongadget, mais je but sur l'exemple ci-joint
je veux en appuyant sur les boutons permuter les colonnes de façon à avoir la colonne de la listicongadget alignée sous le stringgadget et lors de la saisie dans le striggadget y faire une recherche dans la colonne concernée.
. pourais-tu m'aider.

Code : Tout sélectionner

#LVM_SETCOLUMNORDERARRAY  = #LVM_FIRST + 58
#LVM_GETHEADER            = #LVM_FIRST + 31
#HDM_ORDERTOINDEX         = #HDM_FIRST + 15

Enumeration ; Définition des Gadgets
  #Texte1
  #Texte2
  #Bouton1
  #Bouton2
  #MyGadget
EndEnumeration

Structure MyList
  Column.l
  Text.s
EndStructure
NewList List.MyList()

Procedure SaveContent() ; Sauve le contenu de chaque colonne dans une liste
  Handle        = SendMessage_(GadgetID(#MyGadget), #LVM_GETHEADER, 0, 0)
  CountColumns  = SendMessage_(Handle, #HDM_GETITEMCOUNT, 0, 0)
 
  ClearList(List())
  For col = 0 To CountColumns -1
    For Line = 0 To CountGadgetItems(#MyGadget) -1
      AddElement(List())
      List()\Column = col
      List()\Text   = GetGadgetItemText(#MyGadget, Line, col)
    Next
  Next
  ProcedureReturn
EndProcedure

Procedure ReloadContent() ; Recharge le contenu de chaque colonne
  Handle        = SendMessage_(GadgetID(#MyGadget), #LVM_GETHEADER, 0, 0)
  CountColumns  = SendMessage_(Handle, #HDM_GETITEMCOUNT, 0, 0)
 
  For i = 0 To CountColumns -1
    col = SendMessage_(Handle, #HDM_ORDERTOINDEX, i, 0)
   
    ForEach List()
      If List()\Column = col
        SetGadgetItemText(#MyGadget, Line, List()\Text, col) : Line +1
      EndIf
    Next
    Line = 0
  Next
  ProcedureReturn
EndProcedure

Procedure FindStringLIG(searchString1.s,NbColumns)
  For Colonne = 0 To NbColumns -1
    For Ligne = 0 To CountGadgetItems(#MyGadget)
      If GetGadgetItemText(#MyGadget,Ligne,Colonne) = searchString1
        SetGadgetItemState(#MyGadget,Ligne,#PB_ListIcon_Selected)
        SendMessage_(GadgetID(#MyGadget),#LVM_ENSUREVISIBLE,Ligne,#True)
        Break 2
      EndIf
    Next
  Next
EndProcedure

;/ Test de la Librairie
OpenWindow(0, 302, 150, 382, 143,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Manage Event")
CreateGadgetList(WindowID())
StringGadget(#Texte1, 40, 10, 80, 20, "")
ButtonGadget(#Bouton1, 121, 10, 20, 20, Chr( 60 ))
HideGadget( #Bouton1, #True )
ButtonGadget(#Bouton2, 141, 10, 20, 20, Chr( 62 ))
HideGadget( #Bouton2, #True )
ListIconGadget(#MyGadget,40,29,121,75,"Code Postal",100,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines)
SetListIconGadgetColor(#MyGadget, RGB(253, 253, 216) )
HideGadget( #MyGadget, #True )
AddGadgetColumn(#MyGadget, -1, "Ville", 150)
;ShowColumnsHeader(#MyGadget, #PB_ListIcon_Hide)

    For i = 0 To 10
      AddGadgetItem(#MyGadget, -1, "5110"+Str(i)+Chr(10)+"Dans")
    Next
    AddGadgetItem(#MyGadget, -1, "Coude pvc "+Str(i)+Chr(10)+"Dans")

SetGadgetFont( #Texte1, FontArial8)
SetGadgetColor( #Texte1, RGB(65, 20, 92), RGB(218, 236, 245))
   Repeat
      ;
      EventID.l = WaitWindowEvent()
      ;
      If EventID = #PB_Event_CloseWindow  ; If the user has pressed on the close button
         ;
         DoQuit = #True
         ;
      ElseIf EventID = #PB_Event_Gadget
         ;
         If EventGadgetID() = #Texte1
            If EventType() = #PB_EventType_Focus
               SetGadgetFont( #Texte1, FontArial8B)
               SetGadgetColor( #Texte1, RGB(236, 44, 28), RGB(247, 247, 216))
               HideGadget( #Bouton1, #False )
               HideGadget( #Bouton2, #False )
               HideGadget( #MyGadget, #False )
            ElseIf EventType() = #PB_EventType_Change
               FindStringLIG( GetGadgetText( #Texte1 ),2)
            EndIf
            ;
            If EventType() = #PB_EventType_LeftClick
               ;
               ;
            EndIf
         ElseIf EventGadgetID() = #Bouton1
            SaveContent()
            SendMessage_(GadgetID(#MyGadget), #LVM_SETCOLUMNORDERARRAY, 4, ?Order0)
            ReloadContent()
           
        ElseIf EventGadgetID() = #Bouton2
            SaveContent()
            SendMessage_(GadgetID(#MyGadget), #LVM_SETCOLUMNORDERARRAY, 4, ?Order1)
            ReloadContent()
           
        ElseIf EventGadgetID() = #MyGadget
            If EventType() = #PB_EventType_LeftClick
               SetGadgetText( #Texte1, GetGadgetItemText(#MyGadget, GetGadgetState(#MyGadget), 0 ) )
                HideGadget( #Bouton1, #True )
               HideGadget( #Bouton2, #True )
               HideGadget( #MyGadget, #True )
              
            EndIf        
        EndIf
         ;
      EndIf
      ;
   Until DoQuit = #True

DataSection
Order0:
Data.l 0, 1

Order1 :
Data.l 1, 0

EndDataSection
Merci d'Avance