Je ne suis apparemment pas le seul a avoir ce problème (vraiment gênant et dont la "rustine" est assez complexe à mettre en oeuvre) cf.
http://purebasic.hmt-forum.com/viewtopic.php?t=1405 .
Y'a-t'il une chance que mon appel soit entendu

Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.9
;
; Explication du programme :
; Montre comment gérer le double clic dans une ListIconGadget
; Création de la fenêtre et dela GadgetList
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "ListIconGadget") = 0 Or CreateGadgetList(WindowID()) = 0
End
EndIf
; On crée un ListIconGadget
ListIconGadget(0, 0, 0, 300, 300, "Titre", 250, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
; On rempli le ListIconGadget
For n = 1 To 10
AddGadgetItem(0, -1, "Texte " + Str(n))
Next
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
Select EventGadgetID() ; boutons, zone de texte, ...
Case 0
Pos = GetGadgetState(0) ; On récupère la position de l'élément sélectionné
If Pos >= 0 ; Si un élément est sélectionné
If EventType() = #PB_EventType_LeftDoubleClick ; Si on a fait un double clic
Txt.s = InputRequester("ListIconGadget", "Entrez le nouveau texte :", GetGadgetItemText(0, Pos, 0))
SetGadgetItemText(0, Pos, Txt, 0)
EndIf
EndIf
EndSelect
EndIf
Until Event = #PB_EventCloseWindow
End
Hélas, non ! cette solution est moins encombrante mais n'est pas aussi élégante. Le comportement recherché serait plutôt celui d'un tableur : tu cliques une cellule et tu tapes ton texte...Le Soldat Inconnu a écrit :il y a un truc qui m'échappe, c'est ça que tu veux faire ?
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu ; Version de PB : 3.9 ; ; Explication du programme : ; Montre comment gérer le double clic dans une ListIconGadget ; Création de la fenêtre et dela GadgetList If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "ListIconGadget") = 0 Or CreateGadgetList(WindowID()) = 0 End EndIf ; On crée un ListIconGadget ListIconGadget(0, 0, 0, 300, 300, "Titre", 250, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection) ; On rempli le ListIconGadget For n = 1 To 10 AddGadgetItem(0, -1, "Texte " + Str(n)) Next Repeat Event = WaitWindowEvent() If Event = #PB_EventGadget Select EventGadgetID() ; boutons, zone de texte, ... Case 0 Pos = GetGadgetState(0) ; On récupère la position de l'élément sélectionné If Pos >= 0 ; Si un élément est sélectionné If EventType() = #PB_EventType_LeftDoubleClick ; Si on a fait un double clic Txt.s = InputRequester("ListIconGadget", "Entrez le nouveau texte :", GetGadgetItemText(0, Pos, 0)) SetGadgetItemText(0, Pos, Txt, 0) EndIf EndIf EndSelect EndIf Until Event = #PB_EventCloseWindow End