Drag&Drop из DBGrid
От: Well Россия  
Дата: 07.11.05 14:19
Оценка:
Ещё зимой столкнулся с задачей, потом благополучно забыл и вот сейчас она всплыла вновь .
Задача перетащить из DBGrid данные в другую форму.
Но возникла проблема.
Событие OnMouseDown происходит если курсор находится на DBGrid, но вне таблицы данных. Если нажимаешь кнопку мыши на таблице, то событие OnMouseDown не обрабатывается. Выделяется ячейка, но реакции на нажатие мыши в этом случае нет.
Каким образом отловить OnMouseDown ?

Код примерно такой:
void __fastcall TForm1::DBGrid1DragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
Accept = true;
}

//----------------------------------------------------------------------------------

void __fastcall TForm1::DBGrid1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
//TDBGrid* grid=(TDBGrid*)Sender; // cast to TFileListBox
Edit1->Text=" таблицa";
//grid->BeginDrag(false,-1);
}

Если я нажимаю кнопкой на DBGrid, но вне таблицы, надпись "таблица" появляется, если в какой либо ячейке таблицы, то никакой реакции.
Ну и тоже если я раскомментирую drag&drop

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