Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TImage drag drop klappt nur aus dem Explorer, nicht mit FF (https://www.delphipraxis.net/125386-timage-drag-drop-klappt-nur-aus-dem-explorer-nicht-mit-ff.html)

Thorben86 5. Dez 2008 01:01


TImage drag drop klappt nur aus dem Explorer, nicht mit FF
 
Ich Möchte gerne aus dem Firefox-Browser Bilder in ein TImage ziehen. Bilder aus dem Explorer kann ich über das Panel drauf ziehen, bei Bildern aus Firefox oder Outlook bekomme ich allerdings keinen Drag-Courser angezeigt.

Delphi-Quellcode:
type
  TForm2 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private
      originalPanelWindowProc : TWndMethod;
      procedure PanelWindowProc (var Msg : TMessage) ;
      procedure PanelImageDrop (var Msg : TWMDROPFILES) ;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

uses ShellApi;

procedure TForm2.FormCreate(Sender: TObject);
begin
 originalPanelWindowProc := Panel1.WindowProc;
 Panel1.WindowProc := PanelWindowProc;

 DragAcceptFiles(Panel1.Handle,true) ;
end;

procedure TForm2.PanelWindowProc(var Msg: TMessage) ;
begin
   if Msg.Msg = WM_DROPFILES then
     PanelImageDrop(TWMDROPFILES(Msg))
   else
     originalPanelWindowProc(Msg) ;
end; (*PanelWindowProc*)

procedure TForm2.PanelImageDrop(var Msg: TWMDROPFILES) ;
var
   numFiles : longInt;
   buffer : array[0..MAX_PATH] of char;
begin
inherited;
   numFiles := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0) ;
   if numFiles > 1 then
   begin
     ShowMessage('You can drop only one image file at a time!') ;
   end
   else
   begin
     DragQueryFile(Msg.Drop, 0, @buffer, sizeof(buffer)) ;
     try
       Image1.Picture.LoadFromFile(buffer) ;
     except
       on EInvalidGraphic do ShowMessage('Unsupported image file, or not an image!') ;
     end;
   end;
end; (*PanelImageDrop*)
Den code hab ich über die Suche hier als Newsfeed von delphi.about.com gefunden.

Hoffe mir kann irgendwer weiterhelfen, wie ich da auch Bilder aus dem Firefox 3 reinziehen kann.

ralfschwalbe 5. Dez 2008 06:48

Re: TImage drag drop klappt nur aus dem Explorer, nicht mit
 
Hi,

bin mir nicht sicher, aber ich glaube, das aus dem IE oder Firefox oder was auch immer, keine Dateien per DragDrop gesendet werden. Somit kann das über DragQueryFile nicht funktionieren.

Thorben86 5. Dez 2008 12:44

Re: TImage drag drop klappt nur aus dem Explorer, nicht mit
 
Aber ich kann ja z.b. Bilder aus FF oder IE in den Explorer ziehen. Irgendwie müssen die Windows das ja auch klarmachen.

Thorben86 6. Dez 2008 00:34

Re: TImage drag drop klappt nur aus dem Explorer, nicht mit
 
Also ich weis jetzt immerhin schon, dass ich das ganze wohl über Hier im Forum suchenIDropTarget machen muss. Hab auch schon einige beispiele gefunden, wie ich z.b. nen text in ne listbox ziehe. (URL aus FF in Listbox funktioniert.)

Scheitere jetzt aber noch daran, ein bild in das TImage zu bekommen. Tippe mal, dass da irgendwie mit dem Clipboard Formaten "cf_" zu tun hat.

Die TShellDropper Komponente hier aus dem Forum funktioniert aussem FF leider auch nur für Text.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz