Page 1 sur 1
comment creé le double click pour une listicon????
Publié : sam. 20/nov./2004 23:15
par jbernard13
bonsoir
je voudrais savoir
quand on cree une listeicongadget
comment faireun pour double clique pour selectionner l'element de la listicongadget
en 2 mot comment creé le double click
merci
Bonne nuit

Publié : sam. 20/nov./2004 23:33
par Backup
voir le TUTO souris posté dans la rubrique debutant !!
tu verra ça ! et plein d'autre truc sur la souris !
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 200, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Souris")
SetClassLong_(WindowID(), #GCL_STYLE, GetClassLong_(WindowID(), #GCL_STYLE) | #CS_DBLCLKS) ; Active la gestion du double clic
Repeat
Event = WaitWindowEvent()
If Event = #WM_LBUTTONDOWN
Debug "Bouton gauche appuyé"
ElseIf Event = #WM_LBUTTONUP
Debug "Bouton gauche relaché"
ElseIf Event = #WM_LBUTTONDBLCLK
Debug "Double clic gauche"
ElseIf Event = #WM_RBUTTONDOWN
Debug "Bouton droit appuyé"
ElseIf Event = #WM_RBUTTONUP
Debug "Bouton droit relaché"
ElseIf Event = #WM_RBUTTONDBLCLK
Debug "Double clic droit"
EndIf
Until Event = #WM_CLOSE
EndIf
Publié : dim. 21/nov./2004 8:29
par jbernard13
merci dobro
et milles excuses pour pas avoir lu le turoriel de la souris sur ce site
bonne journée a tous
Publié : dim. 21/nov./2004 8:39
par Anonyme2
Salut Jbernard13,
voici 2 codes différents pour faire ça
Un utilise les Api et pas l'autre
Code : Tout sélectionner
Enumeration
#MainWindow
#ListIconGadget1
EndEnumeration
Structure LVITEM
Mask.l
iItem.l
iSubItem.l
State.l
stateMask.l
pszText.l
cchTextMax.l
iImage.l
lParam.l
iIndent.l
iGroupId.l
cColumns.l
puColumns.l
EndStructure
#LVNI_SELECTED = 2
#LVM_GETNEXTITEM = 4108
#LVIF_STATE = 8
; ;========================================================================================
; ;========================================================================================
If OpenWindow(#MainWindow, 0, 0, 480, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, " Double click")
If CreateGadgetList(WindowID()) And ListIconGadget(#ListIconGadget1, 40, 95, 398, 180, "Col 1", 298)
For i.b = 1 To 10
AddGadgetItem(#ListIconGadget1, -1, "Element "+Str(i))
Next i
; variable utilisée pour la listicon
Var.LVITEM\mask = #LVIF_STATE
Var\iSubItem = 0
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
Select EventGadgetID()
Case #ListIconGadget1
If EventType() = #PB_EventType_LeftDoubleClick
Var\iItem = SendMessage_(GadgetID(#ListIconGadget1), #LVM_GETNEXTITEM, -1, #LVNI_SELECTED)
If Var\iItem <> -1 ; -1 indique pas d'élément sélectionné
Ligne = Var\iItem
Colonne = 0
Element$ = GetGadgetItemText(#ListIconGadget1, Ligne, Colonne)
MessageRequester("Double click sur l'élément",Element$,16)
Else
MessageRequester("Erreur", "Pas de double click sur un élément",16)
EndIf
EndIf
EndSelect
Case #PB_EventCloseWindow
Quit + 1
EndSelect
Until Quit
EndIf
EndIf
End
et l'autre
Code : Tout sélectionner
Enumeration
#MainWindow
#ListIconGadget1
EndEnumeration
; ;========================================================================================
; ;========================================================================================
If OpenWindow(#MainWindow, 0, 0, 480, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, " Double click")
If CreateGadgetList(WindowID()) And ListIconGadget(#ListIconGadget1, 40, 95, 398, 180, "Col 1", 298 )
For i.b = 1 To 10
AddGadgetItem(#ListIconGadget1, -1, "Element "+Str(i))
Next i
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
Select EventGadgetID()
Case #ListIconGadget1
If EventType() = #PB_EventType_LeftDoubleClick
For i = 0 To CountGadgetItems(#ListIconGadget1)-1
If GetGadgetItemState(#ListIconGadget1, i) & #PB_ListIcon_Selected
Ligne = i
Colonne = 0
Element$ = GetGadgetItemText(#ListIconGadget1, Ligne, Colonne)
ElementTrouver = #true
Break ; pour sortir
EndIf
Next i
If ElementTrouver
MessageRequester("Double click sur l'élément",Element$,16)
Else
MessageRequester("Erreur", "Pas de double click sur un élément",16)
EndIf
EndIf
EndSelect
Case #PB_EventCloseWindow
Quit + 1
EndSelect
Until Quit
EndIf
EndIf
End
Publié : dim. 21/nov./2004 9:21
par jbernard13
merci denis
passe un bonne journée
Publié : dim. 21/nov./2004 12:03
par nico
C'est plus simple en utilisant
GetGadgetState:
Code : Tout sélectionner
Enumeration
#MainWindow
#ListIconGadget1
EndEnumeration
If OpenWindow(#MainWindow, 0, 0, 480, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, " Double click")
If CreateGadgetList(WindowID()) And ListIconGadget(#ListIconGadget1, 40, 95, 398, 180, "Col 1", 298 )
For i.b = 1 To 10
AddGadgetItem(#ListIconGadget1, -1, "Element "+Str(i))
Next i
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
Select EventGadgetID()
Case #ListIconGadget1
Select EventType()
Case #PB_EventType_LeftDoubleClick
Element = GetGadgetState(#ListIconGadget1)
If Element>-1
item.s=GetGadgetItemText(#ListIconGadget1, Element, 0)
MessageRequester("Double click sur l'élément",item,16)
EndIf
EndSelect
EndSelect
Case #PB_EventCloseWindow
Quit + 1
EndSelect
Until Quit
EndIf
EndIf
End

Publié : dim. 21/nov./2004 12:40
par Anonyme2
Excellent Nico.
Au passage Fred, ajoute
GetGadgetState dans les fonctions utilisables de la Listicongadget (dans l'aide, la page de la Listicongadget, pas celle de GetGadgetState )

Publié : dim. 21/nov./2004 12:50
par nico
J'ai aussi découvert cette fonction sur le Forum.
Elle n'apparait pas non plus pour l'OptionGadget.

Publié : dim. 21/nov./2004 12:59
par Anonyme2
Je l'ai pourtant déjà utilisé
mais bon on ne se rappele pas de tout

Publié : dim. 21/nov./2004 13:15
par nico
Si ça se trouve, c'est sur un de tes codes que j'ai découvert cette fonction pour les Listicon.
