| Arhont | 
| Отправлено: 14.09.2005, 11:47 | 
 
 
 | 
 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 Всем привет.
  
вот назрел вопрос такого плана: 
необходимо перетащить на ListBox список названий файлов(или одного)
  
как я не старался, DragOver для перетаскивания из внешнего источника 
не вызывается.
  
Вобщем помогите разобраться что к чему, заранее благодарен. 
 | 
 
  | 
 
| ** Stan | 
| Отправлено: 14.09.2005, 16:23 | 
 
 
 | 
 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 !!! листинг Unit1.h 
//---------------------------------------------------------------------------
  
#ifndef Unit1H 
#define Unit1H 
//--------------------------------------------------------------------------- 
#include  
#include  
#include  
#include  
//---------------------------------------------------------------------------
  
class TForm1 : public TForm { 
__published: // IDE-managed Components 
TListBox *ListBox1; 
TLabel *Label1; 
void __fastcall FormCreate(TObject *Sender); 
private: // User declarations 
void __fastcall AddFiles(TWMDropFiles & MSG);
  
public: // User declarations 
BEGIN_MESSAGE_MAP 
MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, AddFiles) 
END_MESSAGE_MAP(TForm) 
__fastcall TForm1(TComponent* Owner); 
}; 
//---------------------------------------------------------------------------
  
extern PACKAGE TForm1 *Form1; 
//--------------------------------------------------------------------------- 
#endif
 
  
!!! листинг Unit1.cpp 
//---------------------------------------------------------------------------
  
#include  
#pragma hdrstop
  
#include "Unit1.h" 
//--------------------------------------------------------------------------- 
#pragma package(smart_init) 
#pragma resource "*.dfm" 
TForm1 *Form1; 
//--------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner) 
: TForm(Owner){ 
} 
//---------------------------------------------------------------------------
  
void __fastcall TForm1::FormCreate(TObject *Sender) { 
DragAcceptFiles(Handle, true); 
} 
//---------------------------------------------------------------------------
  
void __fastcall TForm1::AddFiles(TWMDropFiles & MSG) { 
char path[256]; 
String string;
  
HDROP DROP = (HDROP)MSG.Drop; 
int nFiles = DragQueryFile(DROP, -1, NULL, NULL); 
//количество файлов, 
//ведь можно перетаскивать один файл, а можно сразу несколько. 
for (int i = 0; i < nFiles; i++) { 
DragQueryFile(DROP, i, path, sizeof(path)); 
string= path;// полное имя перетсакиваемого на форму файла (включая путь) 
//чтоб определить только имя файла надо использовать ф-цию ExtractFileName(AnsiString) 
//например ListBox1->Items->Add(ExtractFileName(string)); 
//Дальше делаем с ним чего угодно например добавляем в ЛистБокс 
ListBox1->Items->Add(string); 
} 
DragFinish(DROP); 
} 
//--------------------------------------------------------------------------- 
 | 
 
  | 
 
| Arhont | 
| Отправлено: 15.09.2005, 10:36 | 
 
 
 | 
 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 Большое спасибо.
  
 | 
 
  | 
 
  |