Bild zu einer externen Applikation

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Bild zu einer externen Applikation

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Bild zu einer externen Applikation

Beitrag 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
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Bild zu einer externen Applikation

Beitrag 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Bild zu einer externen Applikation

Beitrag von mk-soft »

Versuch es mal mit einer Temp-Dabei
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Bild zu einer externen Applikation

Beitrag 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten