problème drag and drop

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
case
Messages : 1547
Inscription : lun. 10/sept./2007 11:13

problème drag and drop

Message par case »

voila je programme un logiciel ou j'ai un gadget sur lequel je veux pouvoir utiliser le drag and drop de fichiers soit locaux sur mon disque soit depuis un navigateur internet

si j'utilise #pb_drop_files je récupère l'emplacement du fichier local sur le disque pas de soucis , par contre depuis le navigateur je n'ai que le fichier local de l'image si c'est un lien avec une image mais pas l'url du fichier


si j'utilise #pb_drop_text je récupère les url depuis le navigateur mais plus les fichier locaux.

y a t'il une solution, pour récupérer les deux données sur le même gadget je tourne en rond depuis le début d’après midi ...
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9546
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: problème drag and drop

Message par Ar-S »

Je n'ai pas la solution mais si elle existe je veux bien la connaitre aussi.
Je me dis qu'il faudrait compter sur le drag n drop pour ce qui est du fichier mais faudrait peut être le joindre à un hook détectant la source de l'objet survolé sur la page pour récupérer son url.
~~~~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
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: problème drag and drop

Message par Patrick88 »

pis t'être que ça va t'aider ...

Code : Tout sélectionner

; Window Variablen
#MainWin=0
#WinX=300
#WinY=200
#WinW=200
#WinH=200

#BufferLength = 1000
#MEM_DROPFILES = 10
*Buffer = AllocateMemory(#BufferLength)

hWnd = OpenWindow(#MainWin, #WinX,#WinY, #WinW,#WinH, "DragTest", #PB_Window_SystemMenu)
If hWnd
  DragAcceptFiles_(WindowID(#MainWin), 1)
  ;UseWindow( #MainWin )
  Repeat
    Event= WaitWindowEvent()
    Select Event
    Case #PB_Event_CloseWindow
      Quit = 1
      
    Case #WM_DROPFILES
      *DropHandle = EventwParam()
      Debug *DropHandle
      If *DropHandle
        NbDroppedFiles = DragQueryFile_ (*DropHandle, $FFFFFFFF, *Buffer, #BufferLength)
        DragQueryFile_(*DropHandle, k, *Buffer, #BufferLength)
        DragFinish_(*DropHandle)
        File$=PeekS(*Buffer)
        MessageRequester("Gedropter Name", File$, 0)
      EndIf
    EndSelect
  Until Quit = 1
EndIf
End
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: problème drag and drop

Message par Backup »

tu devrai lire attentivement
DragOSFormats()

un gadget peut se voir attribuer plusieurs type de format
apres a toi de voir ceux a quoi ton gadget va réagir

puisque tu semble etre capable de récupérer les 2 type de donnée :)

un event est reçu par ton prg lorsqu'un Drop viens d'arriver

tu lis le type, et tu agis en conséquence :)
Dernière modification par Backup le dim. 15/mai/2011 11:48, modifié 1 fois.
Avatar de l’utilisateur
Ar-S
Messages : 9546
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: problème drag and drop

Message par Ar-S »

Patrick88 a écrit :pis t'être que ça va t'aider ...

Code : Tout sélectionner

; Window Variablen
#MainWin=0
#WinX=300
#WinY=200
#WinW=200
#WinH=200

#BufferLength = 1000
#MEM_DROPFILES = 10
*Buffer = AllocateMemory(#BufferLength)

hWnd = OpenWindow(#MainWin, #WinX,#WinY, #WinW,#WinH, "DragTest", #PB_Window_SystemMenu)
If hWnd
  DragAcceptFiles_(WindowID(#MainWin), 1)
  ;UseWindow( #MainWin )
  Repeat
    Event= WaitWindowEvent()
    Select Event
    Case #PB_Event_CloseWindow
      Quit = 1
      
    Case #WM_DROPFILES
      *DropHandle = EventwParam()
      Debug *DropHandle
      If *DropHandle
        NbDroppedFiles = DragQueryFile_ (*DropHandle, $FFFFFFFF, *Buffer, #BufferLength)
        DragQueryFile_(*DropHandle, k, *Buffer, #BufferLength)
        DragFinish_(*DropHandle)
        File$=PeekS(*Buffer)
        MessageRequester("Gedropter Name", File$, 0)
      EndIf
    EndSelect
  Until Quit = 1
EndIf
End
Ce qu'il souhaite c'est qu'avec ce drag/drop d'image d'une page web (ou autre famille de fichier) il puisse afficher d'un coté il ait le chemin locale et de l'autre l'url du fichier. (si j'ai bien pigé)
~~~~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
Avatar de l’utilisateur
case
Messages : 1547
Inscription : lun. 10/sept./2007 11:13

Re: problème drag and drop

Message par case »

ce que je souhaite c'est pouvoir faire un drag & drop d'un fichier sur mon disque dur mais aussi depuis une url.
dans le meme gadget si possible, pas forcement une image mais ca peut être un fichier zip ou autre.

mais si j'utilise le drag n drop avec #pb_drop_file ca me renvoi le chemin vers l'image dans le répertoire temp sur mon disque. moi ce que je veux c'est l'url du fichier lié a l'image. ce que j'obtiens si j'utilise #pb_drop_text.

mais j’arrive pas a avoir sur le même gadget les deux modes simultanément #pb_drop_file et #pb_drop_text

je vais essayer ton code pour voir
ImageImage
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: problème drag and drop

Message par Patrick88 »

marche pas avec un drop d'url...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: problème drag and drop

Message par Backup »

et avec #PB_Drag_Link ?
ps je veux bien chercher , mais laisse au moins un code minimum
pour teste .. :)
Avatar de l’utilisateur
case
Messages : 1547
Inscription : lun. 10/sept./2007 11:13

Re: problème drag and drop

Message par case »

je voudrais récupérer l'url d'un fichier depuis mon navigateur ou le chemin vers le fichier si c'est un fichier local et ce depuis le même gadget ici un image gadget pour l'exemple.

essaye le glisser déposer depuis un lien internet et un fichier local avec les 2 options.
tu vas tout de suite comprendre mon problème

Code : Tout sélectionner

test=OpenWindow(#PB_Any,0,0,128,128,"test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)   
test2=ImageGadget(#PB_Any,0,0,128,128,0,#PB_Image_Border):EnableGadgetDrop(test2,#PB_Drop_Files,#PB_Drag_Link)  ; mettre en commentaire pour tester #pb_drop_text
;test2=ImageGadget(#PB_Any,0,0,128,128,0,#PB_Image_Border):EnableGadgetDrop(test2,#PB_Drop_Text,#PB_Drag_Link)    ; enlever le commentaire pour  tester #pb_drop_text
Repeat
   ev=WindowEvent()
   If ev           
      Select ev               
         Case #PB_Event_GadgetDrop
            If EventDropType()=#PB_Drop_Files  
               Debug EventDropFiles()
            EndIf
            If EventDropType()=#PB_Drop_Text
               Debug EventDropText()
            EndIf
      EndSelect
      
   EndIf
Until ev=#PB_Event_CloseWindow

[/code]
ImageImage
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: problème drag and drop

Message par Backup »

..............
Dernière modification par Backup le sam. 01/oct./2011 10:00, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7334
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: problème drag and drop

Message par falsam »

Bien vuuuuuu(e) !!Je ne te ferais pas d'éloges car tu vas finir par enfler :p :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
case
Messages : 1547
Inscription : lun. 10/sept./2007 11:13

Re: problème drag and drop

Message par case »

ah ok, vu que j'ai la doc en anglais j’étais passé a coté de cette finesse...


merci dobro :)
ImageImage
Répondre