Entwickler-Ecke

Windows API - Drag & Drop


HBriele - Mi 26.01.05 18:30
Titel: Drag & Drop
:?:
Hallo,
ich suche eine Funktion, die Inhalte von Textdateien per Drag & Drop in ein Memo kopiert.
Da ich nicht so recht bewandert bin in Drag & Drop habe ich das Forum durchforstet und bin da glaube ich, auf eine Funktion gestoßen die bei mir jedoch nicht funktioniert.
Der Cursor ändert sich nicht und das Memo wird nicht gefüllt! Eventuell fehlt mir hier ein Funktionsaufruf von WMDROPFILE !
Kann mir hier vielleicht jemand weiter helfen, was noch fehlt?
Danke für eventuelle Hilfe.

Die Funktion http://www.delphipraxis.net/topic1946_dragampdrop.html+WMDROPFILE&hl=de&lr=lang_de


herzi - Fr 28.01.05 00:40

Diese Funktion liest doch nur die Textdateien aus die in dein Memofeld geschoben werden. Dieser QC funktioniert !


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure WMDROPFILE (var msg: TMessage ); Message WM_DropFiles ;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses shellapi;

procedure TForm1.WMDROPFILE(var msg: TMessage);
var
  hDrop : Cardinal ;
  fName : array[0..MAX_PATH] of Char ;
begin
   hDrop := Msg.WParam ;
   fName := '' ;
   DragQueryFile(hDrop, 0, fName, MAX_PATH);
   Memo1.Lines.LoadFromFile(String(fName));
   DragFinish (hDrop);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Handle,True );
end;

end.