[R] $GUI_DROPACCEPTED Help

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

[R] $GUI_DROPACCEPTED Help

#1

Message par papami »

Bonjour,
Peut-on récupérer une info 'glissée' dans un GUI en dehors d'un ctrl Edit ou Input ou List ?
Par exemple pour un GUICtrlCreateLabel la liste des styles étendus comporte $WS_EX_ACCEPTFILES 'le ctrl devant par ailleurs comporter le style $GUI_DROPACCEPTED '

mais comment récupérer l'info ?

ou, autre exemple, est-il posssible de modifier une image en glissant un autre fichier dessus ??? (donc récupérer le nom glissé pour le traiter en conséquence)


Merci
Modifié en dernier par papami le mar. 31 mars 2009 19:43, modifié 3 fois.
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] $GUI_DROPACCEPTED Help

#2

Message par Voodoo »

Bien sur, en voila la preuve:

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $msg,$lbl_info

GUICreate("Drag & Drop into gui",570,50,-1,-1,-1,$WS_EX_ACCEPTFILES)
GUICtrlCreateLabel("File: ",10,10)
$lbl_info=GUICtrlCreateLabel("Drag un fichier ici Drag un fichier ici Drag un fichier ici Drag un fichier ici Drag un fichier ici",70,10,500)
GUICtrlSetState($lbl_info,$GUI_DROPACCEPTED)
GUISetState(@SW_SHOW) 
While 1
    $msg = GUIGetMsg()
    if $msg=$GUI_EVENT_DROPPED then GUICtrlSetData($lbl_info,@GUI_DRAGFILE)
    If $msg=$GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()

Pour changer l'image il suffit de remplacer le guictrlcreatelabel() par un guictrlcreatepic() et le guictrlsetdata() par un GUICtrlSetImage()
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

Re: [R] $GUI_DROPACCEPTED Help

#3

Message par papami »

PARFAIT :D
Merci !
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

Re: [R] $GUI_DROPACCEPTED Help

#4

Message par papami »

juste un petit ennui toutefois...

cette fonction semble ne traiter qu'un seul fichier :

si je selectionne deux fichiers, que je 'glisse' sur un GUICtrlCreateInput comportant un état $GUI_DROPACCEPTED, j'ai bien les deux fichiers avec GUICtrlRead, séparés par le caractère '|' alors que @GUI_DRAGFILE ne me donne que le second de la selection :(

pas de solution pour ce cas ?
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] $GUI_DROPACCEPTED Help

#5

Message par Voodoo »

C'est normal il me semble, dans ce cas la il faut utiliser GuiCtrlRead() et laisser tomber @GUI_DRAGFILE.
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

Re: [..] $GUI_DROPACCEPTED Help

#6

Message par papami »

oui... je vais réessayer mais c'est ce que j'avais fait en premier, et sur un label (ou une icône) le GuiCtrlRead() ne me donnait rien, sauf erreur de ma part ...
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

Re: [R] $GUI_DROPACCEPTED Help

#7

Message par papami »

j'ai mis [R] au sujet, mais effectivement on ne peut pas récupérer avec @GUI_DRAGFILE un couple de fichiers selectionnés/glissés, et GuiCtrlRead ne fonctionne pas avec un label ou une icône...
Donc j'en reste là.
Répondre