Jeg ønsker såmænd bare at trække en tekst-fil (f.eks fra skrivebordet)
ind i et memo.
Andre Drag'n drop tips er velkomne.
Prøv at se om ikke du kan bruge noget af det der bliver skrevet her:
http://www.eksperten.dk/spm/253728
Mvh
Jesper
www.zig-software.dk
jtp@zig-software.dk
Har ikke lige prøvet det, men jeg vil mene at det her skulle du...
procedure TForm1.AcceptFiles( var msg : TMessage );
const
cnMaxFileNameLen = 255;
var
i,
nCount : integer;
acFileName : array [0..cnMaxFileNameLen] of char;
begin
// find out how many files we're accepting
nCount := DragQueryFile( msg.WParam,
$FFFFFFFF,
acFileName,
cnMaxFileNameLen );
// query Windows one at a time for the file name
for i := 0 to nCount-1 do
begin
DragQueryFile( msg.WParam, i,
acFileName, cnMaxFileNameLen );
if extractfileext(acFileName) = '.txt' then
showmessage('txt fil: '+acFileName);
Memo1.Lines.LoadFromFile(acFileName);
end;
DragFinish( msg.WParam );
end;
/Mads
Ups!! Glem det andet svar
Her kommer det rigtige:
først adder du ShellAPI under din "uses", og inde i din fil skriver du:
type
TForm1 = class(TForm)
Memo1: TMemo;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure AcceptFiles( var msg : TMessage );
message WM_DROPFILES;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.AcceptFiles( var msg : TMessage );
const
cnMaxFileNameLen = 255;
var
i,
nCount : integer;
acFileName : array [0..cnMaxFileNameLen] of char;
begin
// find out how many files we're accepting
nCount := DragQueryFile( msg.WParam,
$FFFFFFFF,
acFileName,
cnMaxFileNameLen );
// query Windows one at a time for the file name
for i := 0 to nCount-1 do
begin
DragQueryFile( msg.WParam, i,
acFileName, cnMaxFileNameLen );
Memo1.Lines.LoadFromFile(acFileName);
end;
DragFinish( msg.WParam );
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles( Handle, True );
end;
Har forresten også lige tjekket at det duer, og det gør det altså
håber det kan hjælpe dig!!
/Mads