Bueno, en el form solo cambie la propiedad “BorderStyle” a “bsNone”, y puse el tamaño a 2000 de ancho y 2000 de alto, y la magia de todo se hace en los eventos OnMouseDown, OnMouseMove, y OnMouseUp, estos eventos están en casi todos los componentes visuales, incluyendo el form, así que puedes moverlo desde el mismo form o desde un TImage como lo hago yo. Ahora explicare lo que hago:
Código:
//Primero declaramos dos variables globales.
bool dra = false; //Esta nos sirve para saber cuándo el usuario da click (o toca la pantalla), y cuando lo suelta.
TPoint poi; //Y esta nos sirve para saber en qué coordenadas lo hiso
//---------------------------------------------------------------------------
void __fastcall TForm1::ima2MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
int X, int Y)
{
/*En esta parte guardamos las coordenadas en las que el usuario hiso click*/
dra = true;
poi = Point( X, Y );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ima2MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
/*Si dra == true o sea si el usuario hiso click y no lo ha soltado,
calculamos el punto Y (o Top), que el formulario tendrá*/
if ( dra == true ) {
// int xx = Form1->Left + X - poi.x;
int yy = Form1->Top + Y - poi.y;
if ( yy < 0 ) {
Form1->Top = yy;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ima2MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
int X, int Y)
{
/*Aquí ponemos dra = false, porque el usuario levanto el click*/
dra=false;
}
//---------------------------------------------------------------------------
Pd. Para abrir el formulario que subí, solo tienes que crear un nuevo proyecto y agregar el cpp al proyecto que creaste, en teoría no debería haber mayor inconveniente, aunque no me acuerdo muy bien del builder 6.