[..] Pb Macro @GUI_DragFile

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

[..] Pb Macro @GUI_DragFile

#1

Message par fred39 »

Bonjour,
j'aimerais alimenter une liste view à partir d'un fichier glissé sur la GUI.
Voici un extrait de mon code
je ne comprends pas pourquoi, j'ai un erreur "Unknown macro" ligne 107
je suis bien en Opt("GUIOnEventMode", 1)
D'avance merci pour vos réponses. :-)
Fred
► Afficher le texte
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2127
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Pb Macro @GUI_DragFile

#2

Message par TommyDDR »

À tout hasard, regardons l'aide.

RAPPEL : FAITES F1 SUR @DRAGFILE
@GUI_DragId Drag GUI Control identifier. Only valid on Drop Event. See the GUISetOnEvent() function.
Cela vous indique que la macro n'est valide QUE pour les évenement drop de GUISetOnEvent

Code : Tout sélectionner

GUISetOnEvent($GUI_EVENT_DROPPED, "Fonction")
L'aide de GUISetOnEvent nous apprend aussi que le 2eme paramètre est une CHAINE DE CARACTÈRE contenant le nom de la fonction à appeler (aucun paramètre ne sera envoyé à cette fonction)
-> Vous devez faire:

Code : Tout sélectionner

GUISetOnEvent($GUI_EVENT_DROPPED, "_def_listeview")
Donc si vous faites un appel DIRECTEMENT à votre fonction "_def_listeview" (ce que vous faites ligne 69 et 97) --> BOOOOOM (ce qui est logique car lors d'un appel direct, il n'y a pas de drag&drop, donc pas de nom de fichier)

Je n'ai pas non plus compris pourquoi vous entourez les SetOnEvent d'un while

Code : Tout sélectionner

While 1
    GUISetOnEvent($GUI_EVENT_CLOSE, "Fin")
    GUICtrlSetOnEvent($Bt_Quitter, "Fin")
    GUICtrlSetOnEvent($Bt_ouvrir_fichier_commandes,"_ouvrir_fichier_de_commandes")
    GUISetOnEvent($GUI_EVENT_DROPPED,_def_listeview("drag-drop"))

WEnd
Vous devriez faire :

Code : Tout sélectionner

GUISetOnEvent($GUI_EVENT_CLOSE, "Fin")
GUICtrlSetOnEvent($Bt_Quitter, "Fin")
GUICtrlSetOnEvent($Bt_ouvrir_fichier_commandes,"_ouvrir_fichier_de_commandes")
GUISetOnEvent($GUI_EVENT_DROPPED, "_def_listeview")
While 1
    Sleep(50)
WEnd
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre