Comment créer un ListIconGadget éditable ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
jef
Messages : 11
Inscription : jeu. 29/juil./2004 12:19

PUREVLVSORT

Message 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???
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: PUREVLVSORT

Message 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.
jef
Messages : 11
Inscription : jeu. 29/juil./2004 12:19

PURELVSORT

Message par jef »

:wink: TROP BIEN !! Merci encore à toi gnozal et encore une foi: bon boulet!
@++
jef
Messages : 11
Inscription : jeu. 29/juil./2004 12:19

Message par jef »

Oups! Boulot, c moi le boulet la! :?
jef
Messages : 11
Inscription : jeu. 29/juil./2004 12:19

Message 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
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message 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.
jef
Messages : 11
Inscription : jeu. 29/juil./2004 12:19

Message par jef »

:( G telechargé ta mise à jour, ca ne met pas le curseur à la fin chez moi...
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message 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
jef
Messages : 11
Inscription : jeu. 29/juil./2004 12:19

Message par jef »

:o YEs ca marche, merci bien c'est nikel! je voyais pas ca comme ca mais c good merci!!!!
:lol:
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Comment créer un ListIconGadget éditable ?

Message 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:
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Répondre