Page 1 sur 1

Colonne invisible dans un ListIconGadget ? [RESOLU]

Publié : sam. 28/avr./2007 23:18
par pastor
Bonjour,

Est-il possible de rendre l'une des colonnes d'un ListIconGadget invisible ?

Cela serait grandement utile pour récupérer une donnée cachée et associée à la ligne du tableau qui est sélectionné.

Comme par exemple un identifiant de base de données ou autre chose que l'utilisateur de l'application n'a pas besoin de visualiser dans le tableau mais qui sert au programmeur.

Cordialement,

Laurent

Publié : sam. 28/avr./2007 23:30
par Flype
je te conseille l'utilisation de SetGadgetItemData(#Gadget, item, Value) pour çà.

sinon va voir du coté de la très utile lib de gnozal PureLVSort

http://www.purebasic.fr/english/viewtopic.php?t=13224
http://freenet-homepage.de/gnozal/PureLVSORT_.htm

avec cette fonction PureLVSORT_SetColumnWidth(GadgetNumber.l, Column.l, Width.l)

Publié : sam. 28/avr./2007 23:38
par pastor
Merci Flype, je vais tester...

Sinon j'ai pensé à un bricolage qui marche aussi : En créant une colonne de taille 0 !

Je montre un exemple de syntaxe, si un bleu comme moi tombe la dessus un jour :

AddGadgetColumn(#Gadget_Pwd_Table,3,"Id",0)

A+

Laurent

Publié : sam. 28/avr./2007 23:40
par Flype
Flype a écrit :avec cette fonction PureLVSORT_SetColumnWidth(GadgetNumber.l, Column.l, Width.l)
oui voilà ce qui revient au même.


ou même avec la fonction PureLVSORT_SetColumnFlag(GadgetNumber.l, Column.l, ColumnFlag.b)
PureLVSORT_SetColumnFlag(GadgetNumber.l, Column.l, ColumnFlag.b)


Set a column flag.

Flags :
#PureLVSORT_Column_Fixed : the column width is fixed
#PureLVSORT_Column_Hidden : the column is hidden

Publié : lun. 30/avr./2007 14:30
par gnozal
pastor a écrit :Sinon j'ai pensé à un bricolage qui marche aussi : En créant une colonne de taille 0 !
Oui, mais dans ce cas l'utilisateur peut redimensionner la colonne et voir le contenu caché
Flype a écrit :PureLVSORT_SetColumnFlag(GadgetNumber.l, Column.l, ColumnFlag.b)
alors que là non.

Exemples :

Colonne de taille zéro

Code : Tout sélectionner

#Window_0 = 0 
#ListIcon_0 = 0 
Procedure Open_Window_0() 
  If OpenWindow(#Window_0, 0, 0, 602, 302, "PureLVSORT Test 1",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget| #PB_Window_MinimizeGadget | #PB_Window_SizeGadget)
    If CreateGadgetList(WindowID(#Window_0)) 
      ListIconGadget(#ListIcon_0, 5, 5, 590, 255, "String", 0)  ; Colonne de taille zéro : on peut la redimensionner !
      AddGadgetColumn(#ListIcon_0, 1, "Numeric", 110) 
      AddGadgetColumn(#ListIcon_0, 2, "Float", 110) 
      AddGadgetColumn(#ListIcon_0, 3, "DateDDMMYYYY", 120) 
      AddGadgetColumn(#ListIcon_0, 4, "DateMMDDYYYY", 120) 
      AddGadgetColumn(#ListIcon_0, 5, "DateMMDDYYYY", 120) 
      AddGadgetItem(#ListIcon_0, -1, "ABCDE" + Chr(10) + "514" + Chr(10) + "0.9" + Chr(10) + "31/12/2004" + Chr(10) + "12/31/2004" + Chr(10) + "12/31/2004") 
      AddGadgetItem(#ListIcon_0, -1, "ACDEF" + Chr(10) + "118" + Chr(10) + "1.9" + Chr(10) + "11/12/2004" + Chr(10) + "12/11/2004" + Chr(10)+ "12/11/2004") 
      AddGadgetItem(#ListIcon_0, -1, "ZABCD" + Chr(10) + "-414" + Chr(10) + "7.0" + Chr(10) + "21/01/2003" + Chr(10) + "01/21/2003" + Chr(10)+ "12/11/2004") 
      AddGadgetItem(#ListIcon_0, -1, "DEFGH" + Chr(10) + "524" + Chr(10) + "900" + Chr(10) + "10/06/2001" + Chr(10) + "06/10/2001" + Chr(10)+ "12/11/2004") 
      PureRESIZE_SetGadgetResize(#ListIcon_0, 1, 1, 1, 1)
    EndIf 
  EndIf 
EndProcedure 
Open_Window_0() 
; ListIcon Sort Setup 
If PureLVSORT_SelectGadgetToSort(#ListIcon_0, #PureLVSORT_ShowClickedHeader_IconLeft) = #PureLVSORT_Ok 
  PureLVSORT_SetColumnType(#ListIcon_0, 0, #PureLVSORT_String)
  PureLVSORT_SetColumnType(#ListIcon_0, 1, #PureLVSORT_Numeric) 
  PureLVSORT_SetColumnType(#ListIcon_0, 2, #PureLVSORT_Float) 
  PureLVSORT_SetColumnType(#ListIcon_0, 3, #PureLVSORT_DateDDMMYYYY) 
  PureLVSORT_SetColumnType(#ListIcon_0, 4, #PureLVSORT_DateMMDDYYYY) 
  PureLVSORT_SetLastColumnAutoResize(#ListIcon_0, #True)
EndIf 
; 
Repeat 
  Event = WaitWindowEvent() 
  Select Event 
    Case #PB_Event_Gadget 
  EndSelect 
Until Event = #PB_Event_CloseWindow 
End
Colonne cachée

Code : Tout sélectionner

#Window_0 = 0 
#ListIcon_0 = 0 
Procedure Open_Window_0() 
  If OpenWindow(#Window_0, 0, 0, 602, 302, "PureLVSORT Test 1",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget| #PB_Window_MinimizeGadget | #PB_Window_SizeGadget)
    If CreateGadgetList(WindowID(#Window_0)) 
      ListIconGadget(#ListIcon_0, 5, 5, 590, 255, "String", 100)
      AddGadgetColumn(#ListIcon_0, 1, "Numeric", 110) 
      AddGadgetColumn(#ListIcon_0, 2, "Float", 110) 
      AddGadgetColumn(#ListIcon_0, 3, "DateDDMMYYYY", 120) 
      AddGadgetColumn(#ListIcon_0, 4, "DateMMDDYYYY", 120) 
      AddGadgetColumn(#ListIcon_0, 5, "DateMMDDYYYY", 120) 
      AddGadgetItem(#ListIcon_0, -1, "ABCDE" + Chr(10) + "514" + Chr(10) + "0.9" + Chr(10) + "31/12/2004" + Chr(10) + "12/31/2004" + Chr(10) + "12/31/2004") 
      AddGadgetItem(#ListIcon_0, -1, "ACDEF" + Chr(10) + "118" + Chr(10) + "1.9" + Chr(10) + "11/12/2004" + Chr(10) + "12/11/2004" + Chr(10)+ "12/11/2004") 
      AddGadgetItem(#ListIcon_0, -1, "ZABCD" + Chr(10) + "-414" + Chr(10) + "7.0" + Chr(10) + "21/01/2003" + Chr(10) + "01/21/2003" + Chr(10)+ "12/11/2004") 
      AddGadgetItem(#ListIcon_0, -1, "DEFGH" + Chr(10) + "524" + Chr(10) + "900" + Chr(10) + "10/06/2001" + Chr(10) + "06/10/2001" + Chr(10)+ "12/11/2004") 
      PureRESIZE_SetGadgetResize(#ListIcon_0, 1, 1, 1, 1)
    EndIf 
  EndIf 
EndProcedure 
Open_Window_0() 
; ListIcon Sort Setup 
If PureLVSORT_SelectGadgetToSort(#ListIcon_0, #PureLVSORT_ShowClickedHeader_IconLeft) = #PureLVSORT_Ok 
  PureLVSORT_SetColumnFlag(#ListIcon_0, 0, #PureLVSORT_Column_Hidden) ; Colonne cachée : on ne peut pas la redimensionner !
  PureLVSORT_SetColumnType(#ListIcon_0, 0, #PureLVSORT_String)
  PureLVSORT_SetColumnType(#ListIcon_0, 1, #PureLVSORT_Numeric) 
  PureLVSORT_SetColumnType(#ListIcon_0, 2, #PureLVSORT_Float) 
  PureLVSORT_SetColumnType(#ListIcon_0, 3, #PureLVSORT_DateDDMMYYYY) 
  PureLVSORT_SetColumnType(#ListIcon_0, 4, #PureLVSORT_DateMMDDYYYY) 
  PureLVSORT_SetLastColumnAutoResize(#ListIcon_0, #True)
EndIf 
; 
Repeat 
  Event = WaitWindowEvent() 
  Select Event 
    Case #PB_Event_Gadget 
  EndSelect 
Until Event = #PB_Event_CloseWindow 
End