Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
1

Drag&Drop - отсутствует сообщение

25.11.2011, 18:18. Показов 873. Ответов 5
Метки нет (Все метки)

Привет.

Пытаюс разобратся в Drag&Drop на форуме нашел некий инфо, и помогло...

Вот что я надцарапал в билдере, но сообшение не выподает, может кто нить помоч?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm28::FormDragDrop(TObject *Sender, TObject *Source, int X, int Y)
 
{
  HDROP fDrop;
   wchar_t *fName;
   DragQueryFile(fDrop,0xFFFFFFFF,fName,sizeof(wchar_t));
    MessageBox(0,fName,L"Dropped",MB_OK);
     DragFinish(fDrop);
}
//---------------------------------------------------------------------------
void __fastcall TForm28::FormCreate(TObject *Sender)
{
 DragAcceptFiles(Handle,true);
}
//---------------------------------------------------------------------------
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2011, 18:18
Ответы с готовыми решениями:

Drag&Drop
Здравствуйте:) Уже месяц работаю над текстовым редактором. Встал вопрос: например на рабочем...

Drag&Drop
Как перенести из TreeView1 текст в Edit1 !?!?!?

Drag & Drop file
Подскажите как используя DRAG & DROP перетащить файл на RichEdit чтобы он открылся в RichEdit?

Drag&Drop С++ Builder
подскажите как с ListBox передать текст в Edit?

5
871 / 447 / 35
Регистрация: 25.10.2011
Сообщений: 910
25.11.2011, 18:50 2
Для передачи файлов через Drag&Drop нужно еще реализовать перехват сообщений TWMDropFiles.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31153 / 20361 / 7929
Регистрация: 22.10.2011
Сообщений: 35,294
Записей в блоге: 6
25.11.2011, 18:54 3
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Функция, которая обрабатывает WM_DROPFILES:

C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::WmDropFiles(TWMDropFiles& Message)
{
    HDROP drop_handle = (HDROP)Message.Drop;
    wchar_t fName[256];
    int count = DragQueryFile(drop_handle, -1, NULL, NULL); // количество перетягиваемых файлов
    for (int i=0; i<count; i++)
    {
        DragQueryFile(drop_handle, i, fName, 256);
        MessageBox(0, fName, L"Dropped", MB_OK);
    };
    DragFinish(drop_handle);
};
В Header-файле ее надо связать с WM_DROPFILES:

C++
1
2
3
4
5
6
7
8
9
private:    // User declarations
public: // User declarations
    __fastcall TForm1(TComponent* Owner);
 
    void __fastcall WmDropFiles(TWMDropFiles& Message);
    BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WmDropFiles)
    END_MESSAGE_MAP(TForm);
// ...
. Вот теперь при перетягивании файла получишь сообщение.
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
25.11.2011, 21:06  [ТС] 4
UI,
Спасибо. Точно так сделал как вы сказалы, но выдает он мне иероглифов а ни имя программы, как его исправыть?
Спасибо заранее..


DefineTrueFalse
Спасибо. Вот, сделал так как UI сказал но иероглифов дает в листбоксе(и в мессидже тоже)...

Как его исправыть?
0
Миниатюры
Drag&Drop - отсутствует сообщение  
871 / 447 / 35
Регистрация: 25.10.2011
Сообщений: 910
25.11.2011, 22:05 5
Цитата Сообщение от Programmer. Посмотреть сообщение
Спасибо. Вот, сделал так как UI сказал но иероглифов дает в листбоксе(и в мессидже тоже)...
Как его исправыть?
У меня все ок:
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::WmDropFiles(TWMDropFiles& Message)
{
        HDROP drop_handle = (HDROP)Message.Drop;
        char* fName = new char[256];
        DragQueryFile(drop_handle, 0, fName, 256);
         ShowMessage(fName);
        delete fName;
        DragFinish(drop_handle);
};
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
25.11.2011, 22:39  [ТС] 6
DefineTrueFalse,
Спасибо для меня вот так работает..
C++
1
2
3
4
5
6
    wchar_t * filename = new wchar_t[256];
    HDROP fDrop = (HDROP)Message.Drop;
           DragQueryFile(fDrop,0,filename,256);
            ListBox1->Items->Add(filename);
            delete filename;
       DragFinish(fDrop);
Сделал всё... Спс всем
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2011, 22:39

Помощь в написании контрольных, курсовых и дипломных работ здесь.

TFrame: Drag & Drop
Доброго дня! На форме по-умолчанию находится 2 экземпляра TFrame. На каждом TFrame находится...

Реализовать Drag & Drop на форму
Как сделать что-бы окно программы распознавало перетаскиваемые файлы

Drag&Drop и управление проигрывателем музыки
Люди добрые!!! Пишу поисковик чисто для песен (это для знакомой, она диджеем работает), вызов по...

Drag & drop с одной формы на другую
Стоит передо мной задача, а как выполнить - не догоняю. На Form2 расположен StringGrid. Нужно,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.