Chcesz zrobić obsługę metody
Przeciągnij-Upuść dla swojego programu, czyli chcesz przeciągać do swojego programu jakieś pliki i program ma to obsłużyć? Jeżeli tak to to całe sprawdzanie czy coś zostało przeciągnięte czy nie, jest zupełnie niepotrzebne. Nigdy czegoś podobnego nie robiłem, ale czytałem trochę o tym i skądinąd wiem, że jest to bardziej skomplikowane i jedną funkcją nie da się tego załatwić.
Na wypadek, gdyby o to właśnie Tobie chodziło, zamieszczam kod wczytywania pliku do
Memo1 własnego programu metodą
Drag & Drop, czyli przeciągamy np. plik z
Exploratora Windows lub
Total Commandera do naszego programu, a on go wczytuje:
Plik nagłówkowy np. Unit1.h
private:
TWndMethod WndOldProc;
void __fastcall WndNewProc(TMessage& Message);
Plik źródłowy np. Unit1.cpp
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
WndOldProc = Memo1->WindowProc;
Memo1->WindowProc = WndNewProc;
DragAcceptFiles(Memo1->Handle, true);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WndNewProc(TMessage& Message)
{
if(Message.Msg == WM_DROPFILES)
{
int length;
String FileName;
HDROP drop_handle = (HDROP)Message.WParam;
int filenum = DragQueryFile(drop_handle, -1, NULL, NULL);
for(int i = 0; i < filenum; i++)
{
FileName.SetLength(1024);
length = DragQueryFile(drop_handle, i, FileName.c_str(), 1024);
FileName.SetLength(length);
}
DragFinish(drop_handle);
/* tutaj następuje wczytanie pliku */
Memo1->Lines->LoadFromFile(FileName);
}
WndOldProc(Message);
}