

çà, 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???
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);
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...
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
End