1) На форме помещаем компонент ApplicationEvents из закладки Additional
2) определяем событие OnMessage и пишем туда код обработки:
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled)
{
wchar_t File_Name [512];
if ( Msg.message == WM_DROPFILES )
{
int num_files = DragQueryFileA ( (HDROP)Msg.wParam, 0xffffffff, (LPSTR)NULL, NULL );
if (num_files != 1 )
{
ShowMessage("Too many files");
return;
}
DragQueryFileW((HDROP)Msg.wParam, 0, File_Name, 512 );
File_Name_Label->Caption = File_Name;
Memo1->Lines->LoadFromFile( File_Name );
DragFinish( (HDROP)Msg.wParam );
Lines->Caption = Memo1->Lines->Count;
Calk_Time ();
}
}
3) Определяем какой элемент формы воспринимает DropFiles - это Memo1 на форме
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
DragAcceptFiles( Memo1->Handle, true );
}