Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
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!!
Responder Con Cita
  #2  
Antiguo 03-09-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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".
Responder Con Cita
  #3  
Antiguo 03-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Gracias dec, es la guia q necesitaba..
Responder Con Cita
  #4  
Antiguo 03-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
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..
Responder Con Cita
  #5  
Antiguo 03-09-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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.
Responder Con Cita
  #6  
Antiguo 03-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 03-09-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por daragor Ver Mensaje
Muy bien dec, entendido... ahora como creo nuevos formularios para usarlos como child?
No es preciso hacer nada especial. Al cambiar la propiedad de que venimos hablando, digamos que todo surte efecto por sí solo. Cuando crees un formulario cuya propiedad "FormStyle" valga "fsMDIChild", este se mostrará dentro del formulario "fsMDIForm" de tu aplicación. Si inicias un proyecto nuevo, y, simplemente, añades un formulario (además del principal), cambiando sus propiedades "FormStyle" como hemos dicho, verás que sin más cuando tu aplicación arranque se mostrarán ambos formularios, sin que tú tengas que hacer nada.

Cita:
Empezado por daragor Ver Mensaje
otra cosa, tengo q desarrollar todo un sistema, aunq sea chico.. en una sola unidad?
[/quote]

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?
Responder Con Cita
  #8  
Antiguo 03-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
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..
Responder Con Cita
  #9  
Antiguo 04-09-2012
sebamawa sebamawa is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 18
Poder: 0
sebamawa Va por buen camino
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
Responder Con Cita
  #10  
Antiguo 04-09-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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".
Archivos Adjuntos
Tipo de Archivo: zip MDI.zip (3,8 KB, 26 visitas)
Responder Con Cita
  #11  
Antiguo 04-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
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?
Responder Con Cita
  #12  
Antiguo 04-09-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por daragor Ver Mensaje
Dec! podrias pasarme el ejemplo en lazarus?
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.
Responder Con Cita
  #13  
Antiguo 04-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
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!
Responder Con Cita
  #14  
Antiguo 04-09-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿Echaste un vistazo al artículo en la wiki de Lazarus con una posible alternativa?
Responder Con Cita
  #15  
Antiguo 04-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Si dec, lo vi.. lo baje.. la ultima version es 0.3.1 y no sirve para lazarus RC2..
Responder Con Cita
  #16  
Antiguo 04-09-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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...
Responder Con Cita
  #17  
Antiguo 04-09-2012
sebamawa sebamawa is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 18
Poder: 0
sebamawa Va por buen camino
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.
Responder Con Cita
  #18  
Antiguo 05-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
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..
Responder Con Cita
  #19  
Antiguo 05-09-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Es una posible alternativa.
Responder Con Cita
  #20  
Antiguo 05-09-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
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:
Solucionado el problema, directamente tengo q trabajar con los eventos del los botones en el form prinicipal. configurando por ej. NombreDelFrame.NomBoton.Click
Fallas de novato. :/ igual suma a la causa de este post.
__________________
Mi Blog: Webscom (Software libre)

Última edición por daragor fecha: 05-09-2012 a las 02:27:24.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 23:51:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi