TControl* control = static_cast<TControl*>(Sender);
static bool pulsado = false;
static TPoint posicion;
if (!pulsado && Shift.Contains(ssLeft))
posicion = Point(X, Y);
pulsado = Shift.Contains(ssLeft);
if (pulsado)
{
control->Left += X - posicion.x;
control->Top += Y - posicion.y;
}