soft-c
دوشنبه 05 دی 1390, 21:19 عصر
این کد مربوط است به drag کردن از explorer داخل یک memo .
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure wmp(var mess:TWMDropFiles);
message WM_DROPFILES;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses ShellAPI;
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle,true);
end;
procedure TForm1.wmp(var mess: TWMDropFiles);
const max=255;
var cnt,fcount:integer;
fname:array [0..max] of char;
begin
fcount:=DragQueryFile(mess.Drop,$ffffffff,fname,ma x);
for cnt := 0 to -1+fcount do
begin
DragQueryFile(mess.Drop,cnt,fname,max);
Memo1.Lines.Insert(0,fname);
end;
DragFinish(mess.Drop);
end;
end.
حالا سوال من این است که :
1- این message که نوشته کارش چیه؟
2- چرا در حلقه ی for از 1- شروع کرده .
3- من که تابع wmp را صدا نزدم . پس چطوری اجرا میشه ؟
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure wmp(var mess:TWMDropFiles);
message WM_DROPFILES;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses ShellAPI;
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle,true);
end;
procedure TForm1.wmp(var mess: TWMDropFiles);
const max=255;
var cnt,fcount:integer;
fname:array [0..max] of char;
begin
fcount:=DragQueryFile(mess.Drop,$ffffffff,fname,ma x);
for cnt := 0 to -1+fcount do
begin
DragQueryFile(mess.Drop,cnt,fname,max);
Memo1.Lines.Insert(0,fname);
end;
DragFinish(mess.Drop);
end;
end.
حالا سوال من این است که :
1- این message که نوشته کارش چیه؟
2- چرا در حلقه ی for از 1- شروع کرده .
3- من که تابع wmp را صدا نزدم . پس چطوری اجرا میشه ؟