Seite 1 von 1

Bild zu einer externen Applikation

Verfasst: 29.08.2019 08:36
von Velindos
Hallo Leute,
möchte Bild und Text in eine externe Anwendung per Drag übergeben.

Nun habe die Sache wie in Help beschrieben aufgebaut.

Beim Ziehen zeigt Cursor die Kopie an, aber beim Ziehen in andere Anwendung wandelt er sich ins Verbot Zeichen um!

Und somit kommt nichts an!

Code: Alles auswählen

; Verschieben Sie das Bild zu einer Applikation, welche Bilder akzeptiert (wie Office- oder Grafikprogramme).
Global Work_I_Bild
;
If LoadImage(1, #PB_Compiler_Home + "examples/sources/data/PureBasicLogo.bmp")
  
  If OpenWindow(1, 200, 200, 400, 90, "DragImage in andere Anwendung", #PB_Window_SystemMenu)
    Work_I_Bild = ImageGadget(#PB_Any, 10, 10, 380, 70, ImageID(1))
    EnableGadgetDrop(Work_I_Bild, #PB_Drop_Image, #PB_Drag_Copy )
    
    Repeat
      Event = WaitWindowEvent()      
      If Event = #PB_Event_Gadget And EventGadget() = Work_I_Bild And EventType() = #PB_EventType_DragStart
        Debug "DragStart"
        ; 
        DragImage(ImageID(1),#PB_Drag_Copy)
      EndIf      
    Until Event = #PB_Event_CloseWindow
  EndIf
EndIf
Jemand einen Tipp?

Gruss ... Velindos

Re: Bild zu einer externen Applikation

Verfasst: 29.08.2019 10:44
von mk-soft
Habe es mal getestet...

funktioniert so weit wie es soll. Aber die Anwendung muss auch Drop unterstützen.

Win: Wordpad (habe kein Office hier), macOS: Pages

Re: Bild zu einer externen Applikation

Verfasst: 29.08.2019 12:48
von Velindos
Hallo mk-soft!

Danke für deine prompte Hilfe. Hab die Sache mit Wordpad übersehen!

Versuchte das Bild in den Photofiltre zu geben! Na, das geht nicht.

Hier dürften noch Unterschiede im DragImage sein, keine Ahnung!

Hab einfach das Dragimage noch ins Clipboard geladen und kann es somit auch im Photofiltre einfügen.

Gruss ... Velindos!

Re: Bild zu einer externen Applikation

Verfasst: 29.08.2019 13:04
von mk-soft
Versuch es mal mit einer Temp-Dabei

Re: Bild zu einer externen Applikation

Verfasst: 29.08.2019 14:00
von Velindos
Hallo mk-soft!
Hab die Sache nach deinen Tip gestaltet und schon kann man das Bild
in Externe Anwendungen Dragen!

Code: Alles auswählen

; Verschieben Sie das Bild zu einer Applikation, welche Bilder akzeptiert (wie Office- oder Grafikprogramme).
UsePNGImageDecoder()
UsePNGImageEncoder()

Enumeration
  #Img_Drag
  #Img_Catch
EndEnumeration

Global Work_I_Bild
; Temp Pfad
Global DragFile_Pfad$ = GetTemporaryDirectory()+"Velindos_Clipboard_Image.bmp"
;
If LoadImage(#Img_Drag, #PB_Compiler_Home + "examples/sources/data/PureBasicLogo.bmp")
  
  If OpenWindow(1, 200, 200, 400, 90, "DragImage in andere Anwendung", #PB_Window_SystemMenu)
    Work_I_Bild = ImageGadget(#PB_Any, 10, 10, 380, 70, ImageID(#Img_Drag))
    EnableGadgetDrop(Work_I_Bild, #PB_Drop_Image, #PB_Drag_Copy )
    
    Repeat
      Event = WaitWindowEvent()     
      
      If Event = #PB_Event_Gadget And EventGadget() = Work_I_Bild And EventType() = #PB_EventType_DragStart
        Debug "DragStart"
        ; Img temp save
        SaveImage(#Img_Drag, DragFile_Pfad$, #PB_ImagePlugin_BMP)
        ; drag
        DragFiles(DragFile_Pfad$,#PB_Drag_Copy)
        
      EndIf     
    Until Event = #PB_Event_CloseWindow
  EndIf
EndIf
Danke!

Gruss ... Velindos!