Seite 1 von 1

DragStart Nummer des Gadget ermitteln

Verfasst: 25.05.2019 12:56
von NicknameFJ
Hallo zusammen,

ich habe ein Gadget das sowohl bei #PB_Event_GadgetDrop Dateien empfangen als auch bei #PB_EventType_DragStart Dateien bereitstellen soll.

Das funktioniert soweit auch bestens. Was ich noch zusätzlich benötige, ist, beim #PB_Event_GadgetDrop Event zu erkennen ob #PB_Event_GadgetDrag vom selben Gadget ausgelöst wurde da ich dann kein Drag zulassen will. Also kein Drag and Drop vom und auf das selbe Gadget.

Hat da jemand einen Tipp für mich.

Code: Alles auswählen

EnableExplicit

Define Quit, i, Event, Gadget, Type, File$, Line


If OpenWindow(1,0,0,500,300,"TEST Drag Drop",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
  
  ListIconGadget(1,10,10,480,250,"TEXT",480, #PB_ListIcon_FullRowSelect)
  For i = 0 To 99
    AddGadgetItem(1,-1,"File " + Str(i))
  Next
  
    EnableGadgetDrop(1,#PB_Drop_Files,#PB_Drag_Copy)
  
  Repeat
    
    Event = WaitWindowEvent()
    Gadget = EventGadget()
    Type = EventType()
    
    Select Event
      Case #PB_Event_CloseWindow
        
        Quit = #True
        
        
      Case #PB_Event_Gadget
        
        Select Gadget
          Case 1
            
            Select Type
                
              Case #PB_EventType_DragStart
                Line = GetGadgetState(1)
                If Line <> -1
                File$ = "C:\Test_Drag_and_Drop " + Str(Line) + ".dat"
                
                DragFiles(File$,#PB_Drag_Copy)
                
                Debug "Drag Start mit Datei: " + File$
              EndIf
              
            EndSelect
            
        EndSelect
        
        
        
      Case #PB_Event_GadgetDrop
        Select Gadget
          Case 1
            
            
            If EventDropType() = #PB_Drop_Files
              
              Debug "Drop ausgeführt mit Datei(en): " + EventDropFiles()
              
            EndIf
            
        EndSelect
        
    EndSelect
    
  Until Quit = #True
  
EndIf

Grüße

NicknameFJ

Re: DragStart Nummer des Gadget ermitteln

Verfasst: 25.05.2019 18:31
von NicknameFJ
Ich habe das Problem jetzt so gelöst

Code: Alles auswählen

 EnableExplicit

Define Quit, i, Event, Gadget, Type, File$, Line


If OpenWindow(1,0,0,500,300,"TEST Drag Drop",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
 
  ListIconGadget(1,10,10,480,250,"TEXT",480, #PB_ListIcon_FullRowSelect)
  For i = 0 To 99
    AddGadgetItem(1,-1,"File " + Str(i))
  Next
 
    EnableGadgetDrop(1,#PB_Drop_Files,#PB_Drag_Move)
 
   ; erlaubt hier nur #PB_Drag_Move

  Repeat
   
    Event = WaitWindowEvent()
    Gadget = EventGadget()
    Type = EventType()
   
    Select Event
      Case #PB_Event_CloseWindow
       
        Quit = #True
       
       
      Case #PB_Event_Gadget
       
        Select Gadget
          Case 1
           
            Select Type
               
              Case #PB_EventType_DragStart
                Line = GetGadgetState(1)
                If Line <> -1
                File$ = "C:\Test_Drag_and_Drop " + Str(Line) + ".dat"
               
                DragFiles(File$,#PB_Drag_Copy)

                ; hier nur als #PB_Drag_Copy bereitstellen
               
                Debug "Drag Start mit Datei: " + File$
              EndIf
             
            EndSelect
           
        EndSelect
       
       
       
      Case #PB_Event_GadgetDrop
        Select Gadget
          Case 1
           
           
            If EventDropType() = #PB_Drop_Files
             
              Debug "Drop ausgeführt mit Datei(en): " + EventDropFiles()
             
            EndIf
           
        EndSelect
       
    EndSelect
   
  Until Quit = #True
 
EndIf