![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Arrastrar formulario de tamaño mayor al escritorio
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); } Código:
void __fastcall TForm1::FormMouseDown(..... { ReleaseCapture(); Perfom(WM_SYSCOMMAND, 0xF012, 0); Left=0; } 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.
__________________
Saludos, Bitman |
#2
|
||||
|
||||
Yo no entiendo a qué te refieres con "mover sólo verticalmente sin superar los límites del mismo" De hecho tampoco entiendo para qué podrías querer un formulario que ocupe más que el escritorio; quizá si nos explicas más acerca de lo que quieres hacer podríamos ayudarte mejor.
De todas maneras, creo que te puedo ayudar en la parte de mover el formulario sólo verticalmente:
Con esto, el formulario se mantendrá siempre en la posición horizontal inicial. // Saludos |
#3
|
|||
|
|||
![]() Qué te parece este ejemplo, es simple, y con un poquito de trabajo podría quedar algo similar a metro (ya que según veas lo puedes mover en x también, no solo en y).
Pd. Ce cierra con un doble click donde sea. Pd2. Solo te lo pongo limitado a la parte de arriba, necesitarías echarle un poco de coco para la parte de abajo (solo pensar una condición adecuada). ejem. http://www.megaupload.com/?d=SR4QQFHW |
#4
|
|||
|
|||
Hola,
Primero de todo daros las gracias por las respuestas. Cita:
Lo de no superar los limites, pues me refiero a que si tengo un formulario mayor que el escritorio, pues cuando lo muevo que solo me permita moverlo hasta el inicio o el fin del mismo no mas alla. Para que el efecto de mover el formulario sea como si fuese una pagina. Con el codigo que me pones perfecto puedo mover el formulario verticalmente, pero me sucede el mismo problema que comentaba que cuando lo desplazo hacia arriba y supera el margen de la pantalla al soltar el boton del mouse me revota el formulario a la posicion Top=0. Como puedo evitar este revote? Para que os hagais una idea lo que quiero hacer es una aplicación que se ejecutara en una PDA via terminal server y quiero que la aplicación se pueda manejar algo 'parecido' al Ipod, ya que la pantalla de estas pda's es bastante reducida y con esto me permitira darle un poco mas de juego a la hora de introducir datos en formulario mayores que la pantalla.
__________________
Saludos, Bitman |
#5
|
||||
|
||||
Lo del Top=0 no le veo solución. Es decir, ni cuenta me había dado, pero parece ser el comportamiento normal; incluso si mueves una ventana cualquiera con el teclado (Alt+Space, Mover); aunque lo hace, apenas terminas el movimiento, regresa la ventana a Top=0.
Ahora, sigo sin entender del todo lo que quieres lograr, más que nada porque no conozco los iPods. Pero me da la impresión de que podrías lograrlo de otra forma. El formulario simplemente podría ocupar todo lo alto de la pantalla y lo que desplazas es el contenido. Es decir, un formulario puede tener más elementos de los que visualmente caben en la pantalla y al suceder esto aparecen barras de desplazamiento que puedes manipular. // Saludos |
#6
|
|||
|
|||
Lo que intentaba explicar pues seria muy similar ha esto que tu comentas, de alguna forma realizar una aplicación que permitiese utilizar formualrio mayores que la pantalla, pero en lugar de utilizar barras de desplazamiento desplazarse por el formulario arrastrandolo con el mouse o dedo.
por ejemplo, como cualquier aplicación web que el formulario es mayor que la pantalla y lo vamos desplazando con la barra de desplazamiento o se va desplazando a medida que vamos introduciendo datos en los campos. Lo que queria realizar es esto, el porque no quiero utilizar las barras de desplazamiento, es porque lo estoy pensando para dispositivos tipo PDA y la pantalla ya es pequeña de por si y la barra te come un poco de pantalla. Corrijo que mencione el Ipod y es Ipad: http://www.youtube.com/watch?v=adnx6...tailpage#t=74s Realmente la unica pega que encontraba ahora es el reposicionamiento automatico en Top=0 que hace cuando desplazo la ventana hacia arriba. El porque queria hacer de esta forma, con formularios es para aprovechar todo el IDE de Builder para crear los formularios en tiempo de diseño y no mediante código. Espero haberme explicado un poco mejor. Muchas gracias Roman.
__________________
Saludos, Bitman |
#7
|
|||
|
|||
Y el ejemplo que te dejé, te sirvió? Lo ejecutaste?
![]() Pd. Si, me imaginaba que lo que intentabas hacer era algo táctil, por eso mi mención de metro (en mi opinión un mejor concepto), que se puede mover en X y Y. Pd2. Builder XE ya tiene forma de manejar interfaces táctiles, ahora mismo no te puedo decir como (ya que no lo he necesitado), pero por ahí debe de haber algo que te facilite la tarea. |
#8
|
|||
|
|||
Hola _cero_, muchas gracias por tu ejemplo tambien.
Si que lo mire pero esta hecho en una version superior a mi builder (BCB6.0) y al no poder abrir el proyecto no he podido ver que propiedades has modificado del TForm. He editado los archivos .cpp y .h para ver el codigo pero aqui no he visto que es lo que hace que se pueda desplazar hacia arribar el formulario fuera del margen. La verdad que tambien me despisto porque has utilizado un TImage y pense que desplazabas el image y no el form. Haber si me puedes decir que propiedades cambiastes en el form.
__________________
Saludos, Bitman |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Bloquear el tamaño de un formulario | manolop | Varios | 2 | 28-03-2008 08:48:01 |
Ver imagen en un DBImage en tamaño mayor | pablorc | Gráficos | 2 | 23-01-2006 16:16:21 |
Tamaño del Formulario | alfil123 | Varios | 3 | 30-12-2005 16:13:42 |
Problema con el tamaño de un formulario | Javi2 | Varios | 1 | 11-08-2005 13:25:55 |
Tamaño formulario hijo | craven | Varios | 1 | 22-05-2003 00:13:33 |
![]() |
|