ListIconGadget() et detection a vide...
ListIconGadget() et detection a vide...
Bonjour tout le monde,
Voila j'ai un petit probleme avec les ListIconGadget(), quand on clique dessus et qu'il n'y a pas de valeur ou meme si il y a des valeurs d'ailleur mais que l'on clique en dehors d'une valeur, on ne peut pas detecte ce clique apar si on fait un double-clique.
J'aimerais pouvoir savoir si on peut detecte un clique dans un listicongadget même si celui-ci est vide? est-ce possible?
Cordialement,
GallyHC
Voila j'ai un petit probleme avec les ListIconGadget(), quand on clique dessus et qu'il n'y a pas de valeur ou meme si il y a des valeurs d'ailleur mais que l'on clique en dehors d'une valeur, on ne peut pas detecte ce clique apar si on fait un double-clique.
J'aimerais pouvoir savoir si on peut detecte un clique dans un listicongadget même si celui-ci est vide? est-ce possible?
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: ListIconGadget() et detection a vide...
Es-ce que ça fait le job ?
Code : Tout sélectionner
OpenWindow(0, 0, 0, 500, 400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(1, 10, 10, 400, 300, "sqsdf", 120)
Repeat
event = WaitWindowEvent()
If EventGadget() = 1 And EventType() = #PB_EventType_LeftClick
Debug "CLIC"
EndIf
Until event = #PB_Event_CloseWindow
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: ListIconGadget() et detection a vide...
Bonjour graph100,
Oui cela repond parfaitement a ma demande par contre pas du tout la même réaction dans mon logiciel, j'aissais de comprendre pourquoi.
Merci,
GallyHC
Oui cela repond parfaitement a ma demande par contre pas du tout la même réaction dans mon logiciel, j'aissais de comprendre pourquoi.
Merci,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: ListIconGadget() et detection a vide...
Bonjour,
Je viens de comprendre d'ou vient mon problème en gros c'est en mettant l'option "#PB_ListIcon_MultiSelect", et dans le cas d'un selection multiple il faut double cliquer pour pouvoir activer le gadget. est-ce normal et y a t'il un moyen de ne plus avoir cela?
Cordialement,
GallyHC
Je viens de comprendre d'ou vient mon problème en gros c'est en mettant l'option "#PB_ListIcon_MultiSelect", et dans le cas d'un selection multiple il faut double cliquer pour pouvoir activer le gadget. est-ce normal et y a t'il un moyen de ne plus avoir cela?
Code : Tout sélectionner
Enumeration
#WINDOWS_0
EndEnumeration
Enumeration
#LISTIC_0
EndEnumeration
OpenWindow(#WINDOWS_0, 0, 0, 500, 400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(#LISTIC_0, 10, 10, 400, 300, "sqsdf", 120, #PB_ListIcon_MultiSelect)
AddGadgetColumn (#LISTIC_0, 1, "Ext.", 50)
AddGadgetColumn (#LISTIC_0, 2, "Taille", 60)
AddGadgetColumn (#LISTIC_0, 3, "Date", 100)
Repeat
event = WaitWindowEvent()
If EventGadget() = #LISTIC_0 And EventType() = #PB_EventType_LeftClick
Debug "CLIC"
EndIf
Until event = #PB_Event_CloseWindow
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: ListIconGadget() et detection a vide...
ton code ne fonctionne pas car ....
lorsque tu cliques en dehors du gadget , par exemple pour bouger la fenetre , ton click est détecté !
hors , il faudrait qu'il le soit seulement ET seulement SI on clique SUR le gagdet !!
pour ça il te faut savoir si ta souris se trouve SUR ou en DEHORs de ton gadget ..
voici comme faire :
lorsque tu cliques en dehors du gadget , par exemple pour bouger la fenetre , ton click est détecté !
hors , il faudrait qu'il le soit seulement ET seulement SI on clique SUR le gagdet !!
pour ça il te faut savoir si ta souris se trouve SUR ou en DEHORs de ton gadget ..
voici comme faire :
Code : Tout sélectionner
Enumeration
#WINDOWS_0
EndEnumeration
Enumeration
#LISTIC_0
EndEnumeration
Declare Callback(WindowID, message, wParam, lParam)
OpenWindow(#WINDOWS_0, 0, 0, 500, 400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(#LISTIC_0, 10, 10, 400, 300, "sqsdf", 120, #PB_ListIcon_MultiSelect)
AddGadgetColumn (#LISTIC_0, 1, "Ext.", 50)
AddGadgetColumn (#LISTIC_0, 2, "Taille", 60)
AddGadgetColumn (#LISTIC_0, 3, "Date", 100)
SetWindowCallback(@Callback())
Repeat
event = WaitWindowEvent()
If handle=GadgetID(#LISTIC_0) And EventType() = #PB_EventType_LeftClick
Debug "CLIC"
EndIf
Until event = #PB_Event_CloseWindow
Procedure Callback(WindowID, message, wParam, lParam)
shared handle
Resultat = #PB_ProcessPureBasicEvents
Select message
Case #WM_SETCURSOR
;; Debug "Handle= "+Str(wParam)+" , "+"ID= "+Str(GetDlgCtrlID_(wParam))
handle=wParam
EndSelect
ProcedureReturn Resultat
EndProcedure; EPB
Re: ListIconGadget() et detection a vide...
Bonjour Dobro,
Merci pour l'infos que je note bien. Par contre cela m'empeche pas qu'avec l'option "#PB_ListIcon_MultiSelect", il faut double cliquer sur le "ListIconGadget()" pour avoir "CLIC" dans le debugger et j'aimerais qu'un seul clique l'active?
Cordialement,
GallyHC
Merci pour l'infos que je note bien. Par contre cela m'empeche pas qu'avec l'option "#PB_ListIcon_MultiSelect", il faut double cliquer sur le "ListIconGadget()" pour avoir "CLIC" dans le debugger et j'aimerais qu'un seul clique l'active?
Cordialement,
GallyHC
Dernière modification par GallyHC le dim. 03/févr./2013 14:17, modifié 1 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: ListIconGadget() et detection a vide...
Je ne comprend pas pourquoi ça fonctionne (j'ai le debug quand je relache le clic alors que j'utilise LButtonDown) mais ça fonctionne

Code : Tout sélectionner
Enumeration
#WINDOWS_0
EndEnumeration
Enumeration
#LISTIC_0
EndEnumeration
OpenWindow(#WINDOWS_0, 0, 0, 500, 400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(#LISTIC_0, 10, 10, 400, 300, "sqsdf", 120, #PB_ListIcon_MultiSelect)
AddGadgetColumn (#LISTIC_0, 1, "Ext.", 50)
AddGadgetColumn (#LISTIC_0, 2, "Taille", 60)
AddGadgetColumn (#LISTIC_0, 3, "Date", 100)
Repeat
event = WaitWindowEvent()
If event = #WM_LBUTTONDOWN
x = DesktopMouseX()
y = DesktopMouseY()
pos.q = y<<32 + x
If WindowFromPoint_(pos) = GadgetID(#LISTIC_0)
Debug "CLIC"
EndIf
EndIf
Until event = #PB_Event_CloseWindow
Re: ListIconGadget() et detection a vide...
Bonjour,
cederavic> Bon ben ta solution fonctionne, mais pourquoi en PB avec cette option cela change le fonctionnement du gadget la je ne sais pas?
Merci tout de même pour ta solution.
Cordialement,
GallyHC
cederavic> Bon ben ta solution fonctionne, mais pourquoi en PB avec cette option cela change le fonctionnement du gadget la je ne sais pas?
Merci tout de même pour ta solution.
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: ListIconGadget() et detection a vide...
C'est bizarre ce qui se passe mais c'est possible que la listicon capture les évènements de la souris ce qui expliquerait ces évènements.
Il faudrait faire des tests en api pure pour être sûr!
Il faudrait faire des tests en api pure pour être sûr!
Re: ListIconGadget() et detection a vide...
le code suivant montre qu'il se passe des choses bizarres au niveau de la gestion du gadget lorsqu'il est en mode multiselect...
Une fois qu'on a cliquer dans le gadget, il continu à s'approprier les événements même si la souris est en dehors.
Pour revenir à la normal il doit soit falloir cliquer sur un autre gadget, soit cliquer sur une autre fenetre et revenir...
Je ne pense pas que ce soit entièrement voulu...
Une fois qu'on a cliquer dans le gadget, il continu à s'approprier les événements même si la souris est en dehors.
Pour revenir à la normal il doit soit falloir cliquer sur un autre gadget, soit cliquer sur une autre fenetre et revenir...
Je ne pense pas que ce soit entièrement voulu...
Code : Tout sélectionner
Enumeration
#WINDOWS_0
EndEnumeration
Enumeration
#LISTIC_0 = 1
EndEnumeration
OpenWindow(#WINDOWS_0, 0, 0, 500, 400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(#LISTIC_0, 10, 10, 400, 300, "sqsdf", 120, #PB_ListIcon_MultiSelect)
AddGadgetColumn (#LISTIC_0, 1, "Ext.", 50)
AddGadgetColumn (#LISTIC_0, 2, "Taille", 60)
AddGadgetColumn (#LISTIC_0, 3, "Date", 100)
Repeat
event = WaitWindowEvent()
Debug "----"
Debug EventGadget()
Debug event
If EventGadget() = #LISTIC_0 And Event = #WM_LBUTTONDOWN
Debug "CLIC"
EndIf
Until event = #PB_Event_CloseWindow
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: ListIconGadget() et detection a vide...
Je trouve normal que le listicon en mode multiselect intercepte le premier clic puisque c'est ça fonction justement.
Mais on peut ruser...
Mesa.
Mais on peut ruser...
Code : Tout sélectionner
Enumeration
#WINDOWS_0
EndEnumeration
Enumeration
#LISTIC_0 = 1
EndEnumeration
;Macro de falsam
;http://forums.purebasic.fr/french/viewtopic.php?f=1&t=13328&view=previous
;Un gadget est il survolé ?
Macro GadgetHoverCheck(x, y, Gadget)
(((Not x<GadgetX(Gadget)) & (Not y<GadgetY(Gadget))) &(Not x>=(GadgetX(Gadget)+GadgetWidth(Gadget))) & (Not y>=(GadgetY(Gadget)+GadgetHeight(gadget))))
EndMacro
OpenWindow(#WINDOWS_0, 0, 0, 500, 400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(#LISTIC_0, 10, 10, 400, 300, "sqsdf", 120, #PB_ListIcon_MultiSelect);
AddGadgetColumn (#LISTIC_0, 1, "Ext.", 50)
AddGadgetColumn (#LISTIC_0, 2, "Taille", 60)
AddGadgetColumn (#LISTIC_0, 3, "Date", 100)
Repeat
event = WaitWindowEvent()
Debug "----"
Debug EventGadget()
Debug event
;#LISTIC_0 est-il survolé ?
If GadgetHoverCheck(WindowMouseX(#WINDOWS_0), WindowMouseY(#WINDOWS_0), #LISTIC_0)
Debug "survol"
;Si oui, le bouton gauche est-il enfoncé ?
If event=#WM_LBUTTONDOWN
Debug "------========CLIC=========-------"
EndIf
EndIf
Until event = #PB_Event_CloseWindow
Re: ListIconGadget() et detection a vide...
Bonjour,
Mesa> Je suis tout a fait d'accord dans le principe, mais il serait quand même bien que le gadget donne aussi l'info du premier clique (on a peu etre besoin de faire des actions dans le soft par moment et il faut le savoir).
J'ai fait une petit capture (sur XP et 7) pour montre pourquoi je me penche sur cela


En gros c'est une sorte de "Total Commander", mais qui va aussi gerer les Navigate3 (Tomtom de nouvelle generation).
Si quelqu'un veut déjà testé l'interface pas de prob
c'est ici http://www.koakdesign.info/nav3/Nav3explorer.exe, bon c'est quand même qu'un début 
Cordialement et encore merci pour vos aides,
GallyHC
Mesa> Je suis tout a fait d'accord dans le principe, mais il serait quand même bien que le gadget donne aussi l'info du premier clique (on a peu etre besoin de faire des actions dans le soft par moment et il faut le savoir).
J'ai fait une petit capture (sur XP et 7) pour montre pourquoi je me penche sur cela



En gros c'est une sorte de "Total Commander", mais qui va aussi gerer les Navigate3 (Tomtom de nouvelle generation).
Si quelqu'un veut déjà testé l'interface pas de prob


Cordialement et encore merci pour vos aides,
GallyHC
Dernière modification par GallyHC le mer. 06/févr./2013 11:17, modifié 1 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: ListIconGadget() et detection a vide...
Sous Windows 8

il a l'air fonctionnel.
Je vais dire ce que je n'aime pas (ça signifiera que j'aime le reste
)
- Le petit fond jaune lorsqu'on redimensionne une colonne manuellement. Ton "étiquette" est le bleu, reste avec du bleu.
- la police de caractère grasse. Je ne sais pas laquelle c'est mais elle me donne un arrière goût des années 90.
- Les petites icones seraient plus sympa et plus lisibles si elle faisaient 32x32.
- Ajouter un champ de recherche ce qui éviterait d'avoir à aller dans "Commande" => "Rechercher de fichier"
Voilou.
Sinon c'est propre, comme d'hab
P.S : Votre version du logiciel est non enregistrée

il a l'air fonctionnel.
Je vais dire ce que je n'aime pas (ça signifiera que j'aime le reste

- Le petit fond jaune lorsqu'on redimensionne une colonne manuellement. Ton "étiquette" est le bleu, reste avec du bleu.
- la police de caractère grasse. Je ne sais pas laquelle c'est mais elle me donne un arrière goût des années 90.
- Les petites icones seraient plus sympa et plus lisibles si elle faisaient 32x32.
- Ajouter un champ de recherche ce qui éviterait d'avoir à aller dans "Commande" => "Rechercher de fichier"
Voilou.
Sinon c'est propre, comme d'hab

P.S : Votre version du logiciel est non enregistrée
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: ListIconGadget() et detection a vide...
Bonjour,
Tu n'as pas forcement tors
je vais voir a faire quelques modifications sur l’interface.
Mais bon j'ai du créer mon splitter car celui de pb et de mémoire ne gere que 2 gadgets (c'est déjà bien qu'il y en a un). alors les couleur ect... ce n'était que pour être lisible. Et je me suis plus penché sur les calculs des positions en cas de redimentionnement que sur les couleurs en fait
.
GallyHC
PS: PT1 c'est moche ce gris avec titre en noir, j'espere que c'est pas par defaut sur 8.
Tu n'as pas forcement tors

Mais bon j'ai du créer mon splitter car celui de pb et de mémoire ne gere que 2 gadgets (c'est déjà bien qu'il y en a un). alors les couleur ect... ce n'était que pour être lisible. Et je me suis plus penché sur les calculs des positions en cas de redimentionnement que sur les couleurs en fait

GallyHC
PS: PT1 c'est moche ce gris avec titre en noir, j'espere que c'est pas par defaut sur 8.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: ListIconGadget() et detection a vide...
Salut GallyHC
J'ai testé moi aussi et je trouve que pour le moment c'est très bien.
Petit question : je trouve très sympa le fait que ça n'affiche qu'une petite barre noire quand tu redimensionne tes colonnes (au lieu de voir la fenêtre buguait un peu comme c'est souvent le cas ^^). Tu fais ça comment ?
Bonne continuation
J'ai testé moi aussi et je trouve que pour le moment c'est très bien.
Petit question : je trouve très sympa le fait que ça n'affiche qu'une petite barre noire quand tu redimensionne tes colonnes (au lieu de voir la fenêtre buguait un peu comme c'est souvent le cas ^^). Tu fais ça comment ?
Bonne continuation

http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english