Un Message Pour Chris
Publié : dim. 01/janv./2006 21:35
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.
Merci d'Avance
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