FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como se puede conectar dos formas (dock) en tiempo de ejecucion
He diseñado una aplicacion MDI que debe poner varias formas conectadas entre si ,cuando lanzo la aplicacion me sale la forma parent de las formas mdichild ,he hecho esto modificando el programa de ejemplo que trae delphi 6 relacionado a "dock formas" pues bien resulta que si le pongo la formstyle=mdichild, las formas hijas salen dentro del La forma Parent pero no se conectan correctamente (inclusive haciendolo manualmente), la unica manera que lo hace correctamente es poniendole formstyle=normal conectandolas en tiempo de ejecuacion manualmente provocando que despues de conectarse salgan en la forma Parent ya conectadas y en forma correcta esto me plante el problema de simular esa conexion en tiempo de ejecucion es decir simular la accion del drag & drop pero no tengo idea de como hacerlo en conclusion se puede conectar dos formas por codigo (tiempo de ejecucion) y de esta forma lograr mi objetivo de que salgan conectadas ?
|
#2
|
|||
|
|||
Encontre algo en la web y creo que era de este foro but
Encontre este codigo :
Código:
Form1.Parent:= Form2; Form1.ClientWidth:=Form2.ClientWidth div 2; Form1.ClientHeight:=Form2.ClientHeight div 2; |
#3
|
|||
|
|||
La manera anterior explicada por mi no se adecua a mis requerimientos en ese caso una forma se hace parent de la otra y no hace lo por mi deseado es decir conectarla de forma independiente , esto lo logre haciendo un drag & drop por código,pues bien cree dos formas del tipo Tdockform heredando de la clase del mismo nombre del demo que trae delphi le puse todas la property con el valor para aceptar otras formas (docksite=true),pero hay algo importante para conectarlas no pueden ser style=Mdichild si no fs=fsNormal y despues hice un drag & drop por codigo cuando logre hacer esto me di cuenta que con delphi se puede hace cualquier cosa , solamente hay que buscar la herramienta necesaria y usarla , pues bien el drag & drop por codigo es :
Código:
//posicionar cursor del mouse dentro de la forma a mover creada y //mostrada en diseño SetCursorPos(form2.Top+10,form2.left+10); //hacer click sobre la forma click; //comenzar el drag Form2.BeginDrag(true,-1); //mover el cursor del mouse sobre la forma destino (form2) recipiente //del cliente (form1) SetCursorPos(Form1.Top+10,Form1.left+10); //terminar la operacion de drag Form2.EndDrag(true); una vez esto hecho en el evento on show de la Forma Principal el efecto que tiene es que se conectan la dos formas en un contenedor que hace un split (division) , como ven a lo mejor no es la manera adecuada de hacerlo , a lo mejor hay otra manera de lograr el mismo proposito, pero al "simular" el drag & drop obtuve la conexion (dock), el único inconveniente que tiene es que sale el botón de cerrar en cada una de la formas conectadas y cuando se pincha me salta un error que informa que no se puede cerra una forma con style fsMdichild, pero bueno ya le dare una solucion a ese detalle no se puede hacer un hide sobre una forma con style=fsMdiChild , bueno amigos espero que este comentario halla explicado como obtuve mi primera aplicación usando dock Form pues hace tiempo tenia ese "bichito" de como hacerlo Saludos a todos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como crear componentes ado en tiempo de ejecucion | richy08 | Conexión con bases de datos | 30 | 15-07-2010 16:31:32 |
como crear dll en tiempo de ejecucion | Maycoll | Varios | 12 | 10-05-2008 01:57:19 |
¿Se puede cambiar el path del alias en tiempo de ejecución? | JuanBCT | Tablas planas | 2 | 23-05-2006 18:20:29 |
TZConnection, como cambiar en tiempo de ejecucion¡¡¡¡ | inexperto | Conexión con bases de datos | 1 | 26-06-2005 20:57:04 |
como se puede destruir un objeto en ejecucion | o_rlando20 | OOP | 1 | 14-05-2003 02:23:32 |
|