ce qui serais pas mal aussi c'est de pouvoir modifier les cellule sans passer par un input
j'avais penser a crée un string gadget a la position de la cellule a modifier mais je ne sais pas comment je vais m'y prendre
car il faudrait localiser la position exacte de celle-ci en x et y (pixel) par apport a la fenêtre et aussi savoir sa largeur et sa hauteur
Une fois ceci fais ce serais plus qu'un jeu d'enfant non ?
Code : Tout sélectionner
; exemple réaliser par monsieur dieppedalle david le 23 mars 2011 a 11h Am
#ListIcon_0 = 1
Global couleur_case_selectionner = RGB(51, 153, 255)
Global couleur_texte_case_selectionner = RGB(255, 255, 255)
Global Sauvegarde_case
Global Sauvegarde_colonne
Global Sauvegarde_couleur_case
Global Sauvegarde_couleur_texte_case
; pas de moi mais modifier par moi
Procedure.l WindowCallBack(WindowID.l, Message.l, wParam.l, lParam.l)
ReturnValue.l = #PB_ProcessPureBasicEvents
;
If Message = #WM_NOTIFY
*msg.NMHDR = lParam
If *msg\hwndFrom = GadgetID(#ListIcon_0) And *msg\code = #NM_CLICK
*ListViewIA.NMITEMACTIVATE = lParam
ListViewClick_Row = *ListViewIA\iItem
ListViewClick_Column = *ListViewIA\iSubItem
Sauvegarde_couleur_case = PureCOLOR_GetCellColor(#ListIcon_0, ListViewClick_Row, ListViewClick_Column, 2)
Sauvegarde_couleur_texte_case = PureCOLOR_GetCellColor(#ListIcon_0, ListViewClick_Row, ListViewClick_Column, 1)
SetGadgetText(2, "Click at (" + Str(ListViewClick_Row) + "," + Str(ListViewClick_Column)+ ")")
PureCOLOR_SetCellColor(#ListIcon_0, ListViewClick_Row, ListViewClick_Column, couleur_texte_case_selectionner, couleur_case_selectionner)
PureCOLOR_SetCellColor(#ListIcon_0, Sauvegarde_case, Sauvegarde_colonne, Sauvegarde_couleur_texte_case, Sauvegarde_couleur_case)
SetActiveGadget(2)
Sauvegarde_case = ListViewClick_Row
Sauvegarde_colonne = ListViewClick_Column
ReturnValue = #False
EndIf
EndIf
ProcedureReturn ReturnValue
EndProcedure
; Create Window
OpenWindow(0, 100, 300, 600, 400, "PureCOLOR test : columns, rows and individual cells", #PB_Window_SystemMenu)
SetWindowCallback(@WindowCallBack())
ListIconGadget(#ListIcon_0, 1, 1, 598, 398, "0", 100, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
TextGadget(2, 21, 170, 200, 20, "Click on any cell to colorize it ...")
;
SetGadgetItemText(#ListIcon_0, -1, "Colonne 1", 0)
SetGadgetItemAttribute(#ListIcon_0, 0, #PB_ListIcon_ColumnWidth, 65 , 0)
For b = 2 To 6 ; ajouter 3 colonnes supplémentaires
AddGadgetColumn(#ListIcon_0, b, "Colonne " + Str(b), 65)
Next
For b = 0 To 20 ; ajouter 4 éléments à chaque ligne des listes avec icônes
AddGadgetItem(#ListIcon_0, b, "Elément 1"+Chr(10)+"Elément 2"+Chr(10)+"Elément 3"+Chr(10)+"Elément 4"+Chr(10)+"Elément 5"+Chr(10)+"Elément 6"+Chr(10)+"Elément 7"+Chr(10)+"Elément 8")
Next
Repeat ; Start of the event loop
Event = WaitWindowEvent(1) ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
If Event = #PB_Event_Gadget
If GadgetID = #ListIcon_0
If EventType = #PB_EventType_LeftDoubleClick
Texte$ = InputRequester("Editer le texte de la celulle", "Veuillez entrez le nouveaux texte de la celulle", GetGadgetItemText(#ListIcon_0, Sauvegarde_case, Sauvegarde_colonne))
If Texte$ > ""
SetGadgetItemText(#ListIcon_0, Sauvegarde_case, Texte$, Sauvegarde_colonne)
EndIf
EndIf
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop