[..] Conditions + Double click

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Ekow
Niveau 4
Niveau 4
Messages : 58
Enregistré le : sam. 11 déc. 2010 14:40
Status : Hors ligne

[..] Conditions + Double click

#1

Message par Ekow »

Bonjour à tous
C'est encore moi pour de nouvelle questions... Vous allez finir par ne plus m'aimer :oops: xD
Bon plus sérieusement. Je souhaiterais réaliser une conditions qui dit :
Lorsqu'un double click gauche est détecter dans la liste box il ouvre une fenêtre.

J'ai regarder avec la commande "mouseclick" et j'ai effectuer mon propre test.
Voici le code que j'ai réaliser :

Code : Tout sélectionner

If MouseClick("left", 209, 799, 2) Then
               GuiCreate(blablabla)
        Endif
 
Je n'est pas tout détaillez c'est le début qui compte :)
Je précise que j'ai fait l'erreur d'exécuter cette condition dans une boucle :oops: j'ai eu beaucoup de mal à fermer mon application par le suite xD Bref.

Après ce test je me suis rendu compte qu'il déplace mon curseur vers le coordonnées indiquer et effectuer un double click mais ce n'est pas le résultat que je rechercher.
Je ne voie aucune autre commande qui pourrait réaliser ce que je souhaite. J'ai penser à "HotKeySet" mais je ne connait pas le nom qui effectue un clique.

Donc voila j'espère avoir était précis.
Merci d'avance les amis !
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Conditions + Double click

#2

Message par Jerome »

Coucou,


J'avais utiliser quelque chose de la sorte il y a quelques temps.

Adapte le selon tes besoins.


► Afficher le texte


Cordialement,
Jérôme
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Conditions + Double click

#3

Message par jchd »

Je te laisse mariner sur ton sujet, mais une remarque générale au passage :
On ne crée sous auncun prétexte une interface ou un de ses éléments dans une boucle !
On se crée ça gentiment avant mais sans la rendre active. Le moment venu, on l'active ou la désactive dans la boucle.

Maintenant pour intercepter ton double-clic, voir l'aide de _GUICtrlListView_HitTest. Dans la fonction WM_NOTIFY le cas qui t'intéresse est "Case $NM_DBLCLK".
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Ekow
Niveau 4
Niveau 4
Messages : 58
Enregistré le : sam. 11 déc. 2010 14:40
Status : Hors ligne

Re: [..] Conditions + Double click

#4

Message par Ekow »

Tout d'abord merci pour avoir répondu rapidement.
Ensuite j'ai essayer d'adapter le code au mien.
J'ai recopier le code de la fonction :

Code : Tout sélectionner

Func WM_ListView_DoubleClick($hWnd, $iMsg, $wParam, $lParam)

    #forceref $hWnd, $iMsg, $wParam
    Local $tNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return
    If DllStructGetData($tNMHDR, 1) = $Lst_Handle Then
        If DllStructGetData($tNMHDR, 3) = $NM_DBLCLK Then $fDblClk = True
    EndIf
    $tNMHDR = 0
    Return $GUI_RUNDEFMSG
EndFunc
J'ai ensuite placer ma condition dans ma boucle. Voici la conditions :

Code : Tout sélectionner

    If $fDblClk = True Then
        $fDblClk = False
        _Test()
    EndIf
Lorsque je lance le programme. Il s'exécute mais se ferme automatiquement et m'affiche cette erreur dans la console :

Code : Tout sélectionner

If $fDblClk = True Then
If ^ ERROR
Ah et voici ma fonction "test" qui lui affiche l'interface que je souhaite :

Code : Tout sélectionner

Func _test()
#Region ### START Koda GUI section ### Form=
Global $Form2 = GUICreate("Test", 503, 530, 810, 277)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit

 EndSwitch
WEnd

EndFunc
 
J'aimerais savoir où est mon erreur ?
Je précise également que dans ton code il affiche la liste après avoir cliquer sur le bouton "lister" , mon programme lui affiche la liste dès qu'il est exécuter vu qu'il récupère les données sur un petit fichier.
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Conditions + Double click

#5

Message par Jerome »

Coucou,


Attention à bien mettre :

Code : Tout sélectionner

GUIRegisterMsg($WM_NOTIFY, "WM_ListView_DoubleClick")
ainsi que :

Code : Tout sélectionner

Global $fDblClk = False
Ensuite, tient compte de ce que Jchd ta dit, et ne met pas un "Global $Form2 = GUICreate("Test", 503, 530, 810, 277)" dans une fonction, mais plutôt au tout début de ton code.


Sinon, pourrait-ont avoir ton code au complet?

Edit : Bon aller j'ai eu 2 minutes, je t'ai bricoler un truc rapido :)
► Afficher le texte


Jérôme
Avatar du membre
Ekow
Niveau 4
Niveau 4
Messages : 58
Enregistré le : sam. 11 déc. 2010 14:40
Status : Hors ligne

Re: [..] Conditions + Double click

#6

Message par Ekow »

Bon j'ai exactement tous remit à la bonne place et suivit vos conseils.
Maintenant mon programme se lance mais ce n'est pas pour autant que mon double clique fonctionne sur ma liste.

Deux petites questions :
- J'ai vu que tu utiliser les commandes : _GUICtrlListView_AddColumn($List1, "Servcies Name", 200)
_GUICtrlListView_AddItem($List1, "Row 1: Col 1: lol", 0)
Moi je n'utilise pas ceux la mais plutôt celui la : Global $List1 = GUICtrlCreateList("", 0, 0, 209, 799)
Mes données sont envoyer grâce à la commande : GUICtrlSetData($List1, $pseudo)
Et il faut prendre en compte également que à chaque lancement du programme il va chercher les données dans une petite base de donnée sous forme de fichier texte.

Est ce que cela pose problème ? Où aurait d'autre chose à rajouter dans mon code ?
Car la le programme se lance bien mais mon double click toujours pas.

Je n'est absolument rien oublier dans mon code j'ai vérifier et revérifier plus de 5 fois ;)
Modifié en dernier par Ekow le ven. 10 juin 2011 22:43, modifié 1 fois.
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Conditions + Double click

#7

Message par Jerome »

Jerome a écrit :
Sinon, pourrait-ont avoir ton code au complet?

:roll:
Avatar du membre
Ekow
Niveau 4
Niveau 4
Messages : 58
Enregistré le : sam. 11 déc. 2010 14:40
Status : Hors ligne

Re: [..] Conditions + Double click

#8

Message par Ekow »

Non j'aimerais pouvoir me débrouiller seul au niveau de mon code si tu n'y voie pas d'inconvénient. =)
Répondre