Ver Mensaje Individual
  #9  
Antiguo 13-09-2011
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Reputación: 18
_cero_ Va por buen camino
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.
Responder Con Cita