Comment créer un ListIconGadget éditable ?
PUREVLVSORT
Re: PUREVLVSORT
çà, c'est un bug !jef a écrit :![]()
Super Pour PURELVSORT mais dans le callback pour controler la saisie du texte, on arrive à le récupérer mais tjrs avec un caractère de retard... y a pas moyen de récuperer le text dans le callback apres la dernière saisie???
Il devrait être corrigé : fichiers mis à jour sur mon site.
PURELVSORT
@++
Une derniere question, je voudrais que l'on puisse saisir que du texte ou que des chiffres, bon pour trouver les colonnes, et le type de donnée c'est bon mais ou je bloque c avec la position du chariot lors de l'edition, avant j'utilisais: SendMessage_(gadgetID, #EM_SETSEL, longueur, longueur);
dans la procedure ca donne:
Si qq à une solution... Merci d'avance 
dans la procedure ca donne:
Code : Tout sélectionner
Procedure.l MyEditCallback(Event.l, ListIconNumber.l, Column.l, Row.l, Text.s)
Select Event
Case #PureLVSORT_EditStart
Case #PureLVSORT_EditText
Debug "-> Text = " + Text
If Right(Text,1) <> Str(0) XOr Right(Text,1) <> Str(1) XOr Right(Text,1) <> Str(2) XOr Right(Text,1) <> Str(3) XOr Right(Text,1) <> Str(4) XOr Right(Text,1) <> Str(5) XOr Right(Text,1) <> Str(6) XOr Right(Text,1) <> Str(7) XOr Right(Text,1) <> Str(8) XOr Right(Text,1) <> Str(9)
Debug "numerique"
Else
Debug "Alpha"
numerique.s= Left(Text,Len(Text)-1)
ProcedureReturn @numerique
longueur=Len(numerique.s)
[b];SendMessage_(gadgetID, #EM_SETSEL, longueur, longueur) -> Kel ID mettre??? Possible?[/b] EndIf
Case #PureLVSORT_EditEnd
Debug "fin"
Case #PureLVSORT_EditEscape
EndSelect
EndProcedure
L'ID du contrôle utilisé pour l'édition n'est pas accessible actuellement à l'extérieur de la librairie.jef a écrit :Une derniere question, je voudrais que l'on puisse saisir que du texte ou que des chiffres, bon pour trouver les colonnes, et le type de donnée c'est bon mais ou je bloque c avec la position du chariot lors de l'edition, avant j'utilisais: SendMessage_(gadgetID, #EM_SETSEL, longueur, longueur);
Fichiers mis à jour sur mon site : le curseur est mis à la fin du texte.
Lorsque j'exécute le code ci-dessous, que j'édite la 2ème colonne et que je saisis '9001', le texte est remplacé par '9002', le curseur étant placé après le '2'. Testé sous NT/XP avec ou sans thèmes activés.jef a écrit :G telechargé ta mise à jour, ca ne met pas le curseur à la fin chez moi...
Pas chez toi ? Tu utilises Vista ?
Code : Tout sélectionner
;
; PureLVSORT listicon editing example
;
Procedure.l MyEditCallback(Event.l, ListIconNumber.l, Column.l, Row.l, Text.s)
Debug "*** EDITING CALLBACK"
Select Event
Case #PureLVSORT_EditStart
Debug "ListIcon = " + Str(ListIconNumber)
Debug "Column = " + Str(Column)
Debug "Row = " + Str(Row)
Debug "-> Editing started"
;
; Return : - 0 to enable stringgadget
; - *string to enable spingadget [the string holds the choice items]
;
; ProcedureReturn @"700|800|900|1000"
ProcedureReturn 0
Case #PureLVSORT_EditText
Debug "ListIcon = " + Str(ListIconNumber)
Debug "Column = " + Str(Column)
Debug "Row = " + Str(Row)
Debug "-> Text = " + Text
;
; Return : - 0 to keep the text
; - *string to change the text [the string holds the changed text]
;
If Text = "9001"
ProcedureReturn @"9002"
EndIf
If Text = "Change this text"
ProcedureReturn @"to another text"
EndIf
Case #PureLVSORT_EditEnd
Debug "Editing ended"
Case #PureLVSORT_EditEscape
Debug "Editing cancelled"
EndSelect
Debug "******************"
EndProcedure
;
#Window_0 = 0
#ListIcon_0 = 0
Procedure Open_Window_0()
If OpenWindow(#Window_0, 0, 0, 602, 302, "PureLVSORT Make Editable Test", #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) + "1000" + 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) + "700" + 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) + "800" + Chr(10) + "21/01/2003" + Chr(10) + "01/21/2003" + Chr(10)+ "12/11/2004")
For n=1 To 25
AddGadgetItem(#ListIcon_0, -1, "DEFGH" + Chr(10) + "extra entry "+Str(n) + Chr(10) + "900" + Chr(10) + "10/06/2001" + Chr(10) + "06/10/2001" + Chr(10)+ "12/11/2004")
Next
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) ; Hide column 0
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)
PureLVSORT_MakeColumnEditable(#ListIcon_0, 2, #True) ; Column 2 is editable
PureLVSORT_SetEditingColors(#Red, #White)
PureLVSORT_SetEditingCallback(@MyEditCallback()) ; Set editing callback
EndIf
;
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Debug PureLVSORT_GetFilterString(#ListIcon_0, 1)
EndSelect
Until Event = #PB_Event_CloseWindow
EndMD5 de 'c:\PureBasic420\PureLibraries\UserLibraries\PureLVSORT' = 5a57b202278e1c6e0d61e0d74d063cc7
Re: Comment créer un ListIconGadget éditable ?
C'est toujours aussi compliqué depuis 2008 ou bien il y a eu des évolutions ?
une ListIconGadget (éditable) me serait utile dans mon programme domotique...
Ahhh l'ergonomie
une ListIconGadget (éditable) me serait utile dans mon programme domotique...
Ahhh l'ergonomie
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
http://golfy.olympe.in/Teo-Tea/