Page 2 sur 2

PUREVLVSORT

Publié : jeu. 16/oct./2008 16:06
par jef
:?: :?: 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???

Re: PUREVLVSORT

Publié : ven. 17/oct./2008 15:38
par gnozal
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???
çà, c'est un bug !
Il devrait être corrigé : fichiers mis à jour sur mon site.

PURELVSORT

Publié : lun. 20/oct./2008 8:17
par jef
:wink: TROP BIEN !! Merci encore à toi gnozal et encore une foi: bon boulet!
@++

Publié : lun. 20/oct./2008 8:57
par jef
Oups! Boulot, c moi le boulet la! :?

Publié : lun. 20/oct./2008 10:48
par jef
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:

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 
Si qq à une solution... Merci d'avance :D

Publié : mer. 22/oct./2008 15:41
par gnozal
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);
L'ID du contrôle utilisé pour l'édition n'est pas accessible actuellement à l'extérieur de la librairie.
Fichiers mis à jour sur mon site : le curseur est mis à la fin du texte.

Publié : mar. 28/oct./2008 7:56
par jef
:( G telechargé ta mise à jour, ca ne met pas le curseur à la fin chez moi...

Publié : mar. 28/oct./2008 9:31
par gnozal
jef a écrit ::( G telechargé ta mise à jour, ca ne met pas le curseur à la fin chez moi...
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.
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 
End
As-tu la bonne librairie et as-tu redémarré le compilateur ?
MD5 de 'c:\PureBasic420\PureLibraries\UserLibraries\PureLVSORT' = 5a57b202278e1c6e0d61e0d74d063cc7

Publié : jeu. 30/oct./2008 8:11
par jef
:o YEs ca marche, merci bien c'est nikel! je voyais pas ca comme ca mais c good merci!!!!
:lol:

Re: Comment créer un ListIconGadget éditable ?

Publié : lun. 05/déc./2011 15:27
par Golfy
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... :roll:

Ahhh l'ergonomie :lol: