Autor Beitrag
schitho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 288

XP Home SP2
D2005 Prof
BeitragVerfasst: So 14.09.03 10:38 
Hi,

wie komm ich zu dem Dateinamen, wenn ein Symbol aus dem Explorer auf mein offenes Programm gezogen wird.

Ich möchte also, das Drag/Drop vom Explorer zu meinem Programm möglich wird und ich den so übergebenen Dateinamen (inkl. Pfad) auslesen kann.

Wie mach ich das? Bisher gelingt es mir nicht mal das zuzulassen :oops: . Sobald ich ein Symbol über mein Programm ziehe, ändert sich der Mauszeiger in das "Verbots"-Zeichen (oder wie immer das auch heißt).

Da ich diesbezüglich total ahnungslos bin, wäre ich für ein paar Hinweise dankbar.

lg
Thomas

_________________
(Sorry! Leider ewiger Delphi-Neuling)
schitho Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 288

XP Home SP2
D2005 Prof
BeitragVerfasst: So 14.09.03 16:14 
Hab im Kochbuch von W. Doberenz und T. Kowalski die Lösung gefunden (leicht adaptiert):

ausblenden volle Höhe 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:
47:
interface

uses
  { ... }
 ShellApi;

type
 { ... }
    protected
      procedure WMDROPFILES(var Msg: TMessage); message WM_DROPFILES;
  end;

{ ... }

implementation

{$R *.dfm}

// Drag und Drop von Explorer übernehmen
procedure TFQuickShred.WMDROPFILES(var Msg: TMessage);
var
  i, anzahl, size : integer;
  Dateiname : PChar;
begin
  inherited;
  anzahl:=DragQueryFile(Msg.WParam,$FFFFFFFF,Dateiname,255);
  for i:=0 to (anzahl-1do
  begin
    size:=DragQueryFile(Msg.WParam,i,nil,0)+1;
    Dateiname:=StrAlloc(size);
    DragQueryFile(Msg.WParam,i,Dateiname,size);
    ListBox.Items.Add(ExtractFileName(StrPas(Dateiname)));
    StrDispose(Dateiname);
  end;
  DragFinish(Msg.WParam);
end;

{ ... }

procedure TFQuickShred.FormCreate(Sender: TObject);
begin

{ ... }

  // Drag and Drop erlauben
  DragAcceptFiles(FQuickShred.Handle,True);
end;

_________________
(Sorry! Leider ewiger Delphi-Neuling)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 15.09.03 10:17 
Hallo!

Schau dir mal bitte diesen FAQ Beitrag hier im Delphi-Forum an: ...vom Explorer per Drag&Drop Dateien empfangen?

Gruß
Tino