Drop a file at the C++ Builder form
20.05.2026
Обрабатываем файл по перетаскиванию его на форму приложения

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 );
}