cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Jue 11 May, 2006 12:20 am Asunto: Drag and Drop en el mismo DBGrid |
|
|
Como se puede implementar Drag and Drop en el mismo DBGrid, la idea es arrastrar una fila y se deberá soltar sobre otra fila del mismo dbgrid, la fila arrastrada tomara la nueva posición y las demas se desplazaran, para controlar la posición se posee un campo numérico llamado ORDEN, el cual solo maneja nros enteros y un campo de clave unica llamada ID.
He tratado de activar el Drag and Drop de la siguiente manera en un grid llamado grdDet
| Código: | void __fastcall TwClaseActividad::grdDetDragOver(TObject *Sender,
TObject *Source, int X, int Y, TDragState State, bool &Accept)
{
Accept = ( Source == grdDet );//Si es el mismo grid
}
//---------------------------------------------------------------------------
void __fastcall TwClaseActividad::grdDetDragDrop(TObject *Sender,
TObject *Source, int X, int Y)
{
ShowMessage("Y: "+IntToStr(Y));
}
//---------------------------------------------------------------------------
void __fastcall TwClaseActividad::grdDetColEnter(TObject *Sender)
{
//Se activa con el control Presionado
if( ( GetKeyState(VK_CONTROL )&128)==128 )
grdDet->BeginDrag(true);//,10);
// grdDet->BeginDrag(false); //Otro modo
} |
Hago Uso del evento OnColEnter por que el OnMouseDown solo se activa cuando hago click fuera de las filas, el problema que se presenta usando el OnColEnter es que el Drag no se activa si se hace click en la primera columna de cualquier fila.
¿Alguna idea de como poder implementarlo?  |
|