Hola,
Necesito realizar un entorno para una nueva aplicación que ha de trabajar con formularios con estas caracteristicas:
-. Tamaño superior al escritorio.
-. Poderse arrastrar mediante el evento MouseDown solo verticalmente y no superando los limites del mismo.
He buscado por los foros y he encontrado una solucion que permite arrastrar el formulario implementando en el evento FormMouseDown:
Código:
void __fastcall TForm1::FormMouseDown(.....
{
ReleaseCapture();
Perfom(WM_SYSCOMMAND, 0xF012, 0);
}
El problema que me he encontrado con este metodo es que permite mover el formulario hacia cualquier dirección y no puedo controlar de una forma elegante que solo sea verticalmente y que no supere los limites del formulario, es decir el efecto que busco es parecido a la del navegador web pero sin la barra de desplazamiento.
Código:
void __fastcall TForm1::FormMouseDown(.....
{
ReleaseCapture();
Perfom(WM_SYSCOMMAND, 0xF012, 0);
Left=0;
}
Si añado un Left=0 funciona pero no de forma elegante como comentaba.
El otro problema que me encuentro es cuando arrastro el formulario de forma vertical hacia arriba y se sale del escritorio, en cuanto suelto el boton me lo posiciona automaticamente el formulario en la posición Top=0, como puedo hacer para desplazar fuera del margen del escritorio por la parte superior?
Y si alguien tiene idea como aplicar el efecto de arrastrar y velocidad que hace el iphone seria fantastico.