已经解决,特将代码贴出procedure TfrmFCP.FormCreate(Sender: TObject); begin DragAcceptFiles(Handle,True); end;procedure Tfrmfcp.DropFiles(var Msg: TMessage); var i,Count: integer; buffer: array[0..1024] of Char; s:string; begin inherited; Count := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 256); // 第一次调用得到拖放文件的个数 for i := 0 to Count - 1 do begin buffer[0] := #0; DragQueryFile(Msg.WParam, i, buffer, sizeof(buffer)); // 第二次调用得到文件名称 frmfcp.RunCreatNewfile; s:=buffer; with Tsynedit(pagecontrolfcp.ActivePage.Controls[0]) do begin lines.LoadFromFile(s); hint:=ExtractFileName(s); end; PageControlFCP.ActivePage.CAPTION :=ExtractFileName(s); FCurFile[PageControlfcp.ActivePageIndex] := s; end; end;
《自制支持文件拖放的VCL组件》http://cnprogram.myrice.com/article/delphi/delphi528.html
begin
DragAcceptFiles(Handle,True);
end;procedure Tfrmfcp.DropFiles(var Msg: TMessage);
var
i,Count: integer;
buffer: array[0..1024] of Char;
s:string;
begin
inherited;
Count := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 256); // 第一次调用得到拖放文件的个数
for i := 0 to Count - 1 do
begin
buffer[0] := #0;
DragQueryFile(Msg.WParam, i, buffer, sizeof(buffer)); // 第二次调用得到文件名称
frmfcp.RunCreatNewfile;
s:=buffer;
with Tsynedit(pagecontrolfcp.ActivePage.Controls[0]) do
begin
lines.LoadFromFile(s);
hint:=ExtractFileName(s);
end;
PageControlFCP.ActivePage.CAPTION :=ExtractFileName(s);
FCurFile[PageControlfcp.ActivePageIndex] := s;
end;
end;