FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ventana principal o contenedora de forms?
Hola comunidad... aclaro que soy novato en el entorno lazarus y realmente ando bastante perdido por la poca documentacion, guias y manuales disponibles en la web. Vengo de Visual Foxpro..
Mi pregunta es: Como se crea, aplica o activa una ventana principal de una aplicacion, es decir necesito hacer un sistema con varios formularios y no me agrada esta situacion de tener los forms flotando en el escritorio, espero me entiendan, necesito una ventana para mi sistema, con menus, backgrounds, opciones y demás en donde se abran mis formularios. Esto es posible? Muchas gracias!! |
#2
|
||||
|
||||
Hola,
Hablamos de "SDI" (Single Document Interface) o de "MDI" (Multiple Document Interface). Fíjate en la propiedad "FormStyle" de los formularios. Esta por defecto vale "fsNormal". En el formulario principal de tu aplicación cambia dicha propiedad a "fsMDIForm", y, en el resto de formularios, cambia la propiedad a "fsMDIChild". Hecho esto los formularios "secundarios" aparecerán dentro del principal. Puedes buscar más información en estos foros o en internet sobre "MDI". |
#3
|
|||
|
|||
Gracias dec, es la guia q necesitaba..
|
#4
|
|||
|
|||
Los distintos formularios se crean como unidades? osea yo hago: nuevo -> formularios, se crea en mi proyecto una unidad nueva. es asi el metodo a usar? xq.. setteando los FormStyle no se abren dentro del principal. sigue todo igual..
|
#5
|
||||
|
||||
Hola,
Cuando creas un proyecto nuevo cuentas con un solo formulario, que, será el formulario principal de tu aplicación. Este formulario es el que tiene que tener la propiedad "FormStyle" a "fsMDIForm". El resto de formularios podrán tener su propiedad "FormStyle" a "fsMDIChild". Sólo con esto estos formularios "hijos" aparecerán dentro de tu formulario principal. Si no te funciona prueba creando un nuevo proyecto (a modo de ejemplo) y así poder empezar de cero. |
#6
|
|||
|
|||
Muy bien dec, entendido... ahora como creo nuevos formularios para usarlos como child?
otra cosa, tengo q desarrollar todo un sistema, aunq sea chico.. en una sola unidad? Última edición por daragor fecha: 03-09-2012 a las 21:49:54. |
#7
|
||||
|
||||
Hola,
Cita:
Cita:
No necesariamente tienes que desarrollar una aplicación en una sola unidad. De hecho puede no ser una buena idea, si pensamos que es bien separar el código lo mejor posible. ¿Por qué te surge esta cuestión? |
#8
|
|||
|
|||
Vengo de foxpro en donde, por defecto, todo ocurre dentro de una ventana principal, y en el diseño de mi sistema voy creando forms .. los cuales se ejecutaran, todos, dentro de la misma ventana formateable.. aqui en lazarus veo que esa ventana "contenedora" no existe por defecto, entonces pienso.. voy creando los forms.. Ej. Articulos, Compras, Ventas, Clientes.. cada uno es una unidad diferente.. y los voy llamando a medida q me haga falta, hasta aqui todo bien.. pero cuando termine mi proyecto los forms estaran en el escritorio "volando", por eso es q queria tener una ventana contenedora, creo como la mayoria de los sistemas! pasa q ignoro muchas cosas todavia de lazarus y no consigo buenas guias, o manuales online..
He creado un form principal, y pongo la propiedad FormStyle fsMDIFrom, luego creo otros formularios y setteo la propiedad fsMDIChild, pero cuando los llamo salen arriba del principal, los puedo mover fuera de el.. entonces no entiendo.. repito pido disculpa por mi ignorancia.. |
#9
|
|||
|
|||
Compañero daragor, creo que lo que tú estás buscando es el uso de Frames. Déjame buscar algún hilo del foro para pasártelo y así despejar tus dudas.
Saludos. Entra aquí mejor http://wiki.lazarus.freepascal.org/Frames Última edición por sebamawa fecha: 04-09-2012 a las 06:57:22. Razón: Actualización de respuesta |
#10
|
||||
|
||||
Hola,
Adjunto a este mensaje tienes un ejemplo de aplicación MDI, mejor dicho, se trata de un proyecto "nuevo" al que se le han añadido un par de formularios. Como verás "Form1" tiene su propiedad "FormStyle" a "fsMDIForm" y el resto de formularios a "fsChildForm". Verás que no he hecho nada más, no he escrito nada de código. A ver si es más o menos lo que necesitas... o tal vez el compañero vaya por mejor camino al referirte a "las Frames". |
#11
|
|||
|
|||
Compañero sebamawa, gracias.. estoy investigando lo de frames. De todas maneras adjunto una imagen para que vean lo que necesito:
En esta imagen se ve una ventana principal del sistema, con fondo azul.. y en ella un menu con botones, y un form abm de articulos abierto y arriba un abm de usuarios. Todo se ejecuta dentro de la misma ventana, con fondo azul.. eso es lo q necesito hacer, q mis forms en lazarus tengan una ventana contenedora. Dec! podrias pasarme el ejemplo en lazarus? |
#12
|
||||
|
||||
Hola,
Me he dado cuenta y lo he preparado con Delphi. Ahora bien, he descargado Lazarus y he podido comprobar que el asunto no funciona como se espera, y, es que parece que las aplicaciones MDI no están implementadas en Lazarus, aunque los formularios cuenten con la propiedad correspondiente y nosotros las cambiemos, la aplicación no se comporta como una aplicación MDI. * Aquí puede leerse que MDI no está soportado aún en Lazarus * Y aquí un artículo en la wiki de Lazarus con una posible alternativa Echa un vistazo a ver si puedes sacar algo en claro. |
#13
|
|||
|
|||
Asi es dec, no se comporta como esperamos. No me sirve MDI para lo q necesito y los frames me parece q tampoco, aunq ya entendi y son utiles a la hora de repetir ciertas estructuras de objetos en los diseños. Como dije en el post anterior, necesito una ventana contenedora para mi programa, q se pueda maximizar, minimizar, tener un titulo, etc. (como se ve en la imagen), y que dentro de ella suceda todo, no quiero los formularios volando en el escritorio.. solo eso compañeros!
|
#14
|
||||
|
||||
#15
|
|||
|
|||
Si dec, lo vi.. lo baje.. la ultima version es 0.3.1 y no sirve para lazarus RC2..
|
#16
|
||||
|
||||
Hola,
La verdad es que no se me ocurre otra cosa que no sea usar "paneles" simulando formularios de alguna manera, pero, además de no demasiado elegante, creo que esto pdoría podría complicar las cosas. No sé. A ver si algún otro compañero puede ofrecer otra posible solución... |
#17
|
|||
|
|||
Viendo la imagen que adjuntó el compañero daragor y la explicación dada, me queda claro cuál es su objetivo. Yo hace poco que inicié el uso de Lazarus, y efectivamente las propiedades MDI de los Forms no dan resultado (en principio).
Me parece un tema para seguir discutiendo, pues cualquier sistema - aplicación con una interfaz medianamente estética y prolija tendría que tener disponible este tipo de características. Saludos. |
#18
|
|||
|
|||
Asi es compañeros, hace varios años que uso visual foxpro y he decidido dejarlo xq como sabran es un producto discontinuado, ademas de querer alejarme un poco de lo q es microsoft... lo que si puedo decir, es un programa potente, robusto y muy completo. Como veran en la imagen ese es un producto desarrollado x mi en fox.
Ahora lazarus me interesa y quiero usarlo, mas aun al ser un producto GPL.. es lo q busco. Con lo poco q voy aprendiendo de la interfaz, creo q se podria usar un Form como ventana principal y luego dentro de el usar Paginas y dentro de ellas Frames en donde se cargarian las distintas pantallas que un sistema requiere (articulos, compras, ventas, etc.) todas creadas como frames y con sus respectivos procedimientos y funciones. Adjunto una imagen para que me entiendan y de paso.. me ayuden con alguna idea que surja de los que saben mas.. "cuando mas se conocen las herramientas disponibles mas ideas hay" Saludos compañeros! espero que alguien mas sume ideas a esta situacion.. |
#19
|
||||
|
||||
Hola,
Es una posible alternativa. |
#20
|
|||
|
|||
Ahora tengo un problema.. ya he buscado informacion, pero no doy en la tecla. Si bien en el form principal me carga el frame, con sus editbox, botones, etc. Cuando trabajo en el frame en cuestion con un boton por ej. NUEVO articulo.. en el form principal no me toma ese procedimiento... es como que son 2 botones distintos!! se entiende?
En el evento Click de boton NUEVO del frame creo el alta de articulo.. pero en el form principal este evento esta vacio.. si tengo q trabajar los botones en el form principal haria que el codigo se haga muy largo. no es la idea verdad? no hay herencia en este caso? Muchas gracias por responder! Encontre la Solucion: Cita:
__________________
Mi Blog: Webscom (Software libre) Última edición por daragor fecha: 05-09-2012 a las 02:27:24. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mostrar una ventana "Inicializando" mientras se crean las Forms | mancurnino | Varios | 6 | 08-05-2008 00:50:00 |
Ventana hija en un marco (Frame o Panel) de la ventana padre | birmain | Varios | 2 | 14-10-2007 09:27:56 |
Iniciar aplicación con ventana no principal | adebonis | Varios | 5 | 13-09-2007 18:56:47 |
Forms contenidos en el principal | lafirma | OOP | 2 | 29-03-2004 19:38:26 |
evento de cerrar la ventana principal | ronson | Varios | 1 | 25-02-2004 13:03:06 |
|