[RESOLU] Gérer le Tab et le Return sur un StringGadget
Publié : mar. 10/janv./2012 22:12
Bonjour,
Voici la problématique : j'utilise un premier String dans lequel il est saisi une valeur (numérique), lorsque le champ est quitté (Tab) le second String est rempli de la valeur du premier.
Dans le second String la sortie par le Tab ou Return est interprétée, ici remplissage du listicon (utilisation du menu_0). La valeur du String_2 +1 alimente le String_1 pour recommencer la saisie suivante. Puis réinitialisation du fonctionnement normal. Or le Tab n'est plus géré dans le String_1.
Je suis obligé d'annuler le fonctionnement des raccourcis, car il y a d'autres gadgets dans mon programme.
Avez-vous déjà vu ce problème ? Voici mon code (désolé c'est un peu long) ... Merci
Voici la problématique : j'utilise un premier String dans lequel il est saisi une valeur (numérique), lorsque le champ est quitté (Tab) le second String est rempli de la valeur du premier.
Dans le second String la sortie par le Tab ou Return est interprétée, ici remplissage du listicon (utilisation du menu_0). La valeur du String_2 +1 alimente le String_1 pour recommencer la saisie suivante. Puis réinitialisation du fonctionnement normal. Or le Tab n'est plus géré dans le String_1.
Je suis obligé d'annuler le fonctionnement des raccourcis, car il y a d'autres gadgets dans mon programme.
Avez-vous déjà vu ce problème ? Voici mon code (désolé c'est un peu long) ... Merci
Code : Tout sélectionner
Enumeration
#Window_0 : #String_1 : #String_2 : #ListIcon_0 : #Menu_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 5, 5, 200,300, "Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )
StringGadget(#String_1,10,20, 130, 20, "")
StringGadget(#String_2,10,50, 130, 20, "")
ListIconGadget(#ListIcon_0, 10, 100, 130, 150, "String_1", 60, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#ListIcon_0, 1, "String_2", 60)
EndIf
SetActiveGadget(#String_1)
EndProcedure
Open_Window_0()
Quit = 0
Repeat
EventID = WaitWindowEvent()
Select EventWindow()
Case #Window_0
Select EventID
Case #PB_Event_Gadget
EvtGadget = EventGadget()
Select EvtGadget
Case #String_1
If EventType() = #PB_EventType_Focus
SendMessage_(GadgetID(#String_1), #EM_SETSEL, Len(GetGadgetText(#String_1)),Len(GetGadgetText(#String_1)))
EndIf
If EventType() = #PB_EventType_LostFocus
SetGadgetText(#String_2,Trim(GetGadgetText(#String_1)))
EndIf
Case #String_2
If EventType() = #PB_EventType_Focus
SendMessage_(GadgetID(#String_2), #EM_SETSEL, Len(GetGadgetText(#String_2)),Len(GetGadgetText(#String_2)))
AddKeyboardShortcut(#Window_0,#PB_Shortcut_Return, #Menu_0)
AddKeyboardShortcut(#Window_0,#PB_Shortcut_Tab, #Menu_0)
EndIf
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Menu
Select EventMenu()
Case #Menu_0
RemoveKeyboardShortcut(#Window_0,#PB_Shortcut_Return)
RemoveKeyboardShortcut(#Window_0, #PB_Shortcut_Tab)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Tab, #PB_Shortcut_Tab)
AddGadgetItem(#ListIcon_0,-1,GetGadgetText(#String_1)+Chr(10)+GetGadgetText(#String_2))
Texte.s = Str(Val(GetGadgetText(#String_2))+1)
SetGadgetText(#String_2,"")
SetGadgetText(#String_1,Texte)
SetActiveGadget(#String_1)
EndSelect
EndSelect
EndSelect
Until Quit = 1