Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Forms dentro de otro

Hola buenos dias

Estoy trabajando con: Delphi 6, Win10 y Firebird 2.0

Estoy tratando de hacer algo con los forms. Tengo una aplicación con formulario principal MDI (Menu Principal) y los demas son Child. Pero estoy tratando de programar que dentro un form -es aqui donde deseo me asesoren si se puede o no hacerlo- se vean otros forms...

1.- En primera, se puede hacer esto con los MDI/Child??

Tengo un formulario (fsNormal, no sé si deba ponerlo en fsChild o dejarlo asi) con 2 Panels, uno de ellos tiene 3 botones, y en el otro panel deseo q se vean los datos de los otros formularios, dependiendo del botón que se presione.

Como puedo hacer esto?, usando los MDI/Child.

Saludos a todos y Muchas Gracias por su tiempo!
(cuidense del CoronaVirus)
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 17-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Bueno....ya investigué y no se puede...pero existe otra opción PageControl, este resuelve el problema. Ocultando de principio los TabSheet e irlos mostrando según el boton presionado....esteticamente se ve bien y resuelve...espero que me funcione ya con datos DataSet
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #3  
Antiguo 17-03-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Se pueden visualizar otros formularios dentro de formularios MDIChild, ej.:


El código de ejemplo que visualiza los dos formularios normales dentro del MDIChild es:
Código Delphi [-]
procedure TMDIChild.Button1Click(Sender: TObject);
begin
  // Un form
  Form3 := TForm3.Create(Self);
  Form3.Show;
  Form3.Parent := Self;
  Form3.Align  := alTop;
  Form3.Width  := MDIChild.Width;
  Form3.Height := MDIChild.Height div 2;
  // Otro form
  Form4 := TForm4.Create(Self);
  Form4.Show;
  Form4.Parent := Self;
  Form4.Align := alTop;
  Form4.Width := MDIChild.Width;
  Form4.Height := MDIChild.Height div 2;
end;
Pero no sé si es todo lo que deseas hacer...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 17-03-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Ahora que veo tu segundo mensaje entiendo lo que buscas hacer, y sí el TPageControl es el control indicado para eso.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 19-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola de nuevo.

Ahora que veo tu segundo mensaje entiendo lo que buscas hacer, y sí el TPageControl es el control indicado para eso.

Saludos
Si gracias ecfisa....las 2 opciones son viables, pero decante por el PageControl....y por ahi le di, ya tengo la pantalla hecha.!!!

Gracias de todas maneras por tu aportación y tu tiempo!.

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #6  
Antiguo 24-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Se pueden visualizar otros formularios dentro de formularios MDIChild, ej.:


El código de ejemplo que visualiza los dos formularios normales dentro del MDIChild es:
Código Delphi [-]
procedure TMDIChild.Button1Click(Sender: TObject);
begin
  // Un form
  Form3 := TForm3.Create(Self);
  Form3.Show;
  Form3.Parent := Self;
  Form3.Align  := alTop;
  Form3.Width  := MDIChild.Width;
  Form3.Height := MDIChild.Height div 2;
  // Otro form
  Form4 := TForm4.Create(Self);
  Form4.Show;
  Form4.Parent := Self;
  Form4.Align := alTop;
  Form4.Width := MDIChild.Width;
  Form4.Height := MDIChild.Height div 2;
end;
Pero no sé si es todo lo que deseas hacer...

Saludos
Hola que tal ECFISA.

Estoy explorando el código q me pasaste. Fijate q me gustaría aplicar algo con esto. Te explico o les explico -mejor dicho- la idea q traigo.

En un formulario MDChild tengo 4 botones (Inventario, Entradas, Salidas, Transferencias) estos botones son SpeedButtons, me gustaría hacer el efecto que hice con el pagecontrol. Dando click sobre alguno de estos botones muestro la pestaña en cuestión, pero ahora quiero saber como se puede hacer los mismo con tu código.

Sé que debo tener 4 formularios (fsNormal) para mostrarlos dentro del MDIChild. Hice una prueba con un formulario y lo asocie a un SpeedButton y como dije, funcionó.

Pero ahora como le hago para cerrarlo al momento de dar click sobre otro de los botones?.

La idea que traigo es facilitarle al usuario que en una sola pantalla pueda hacer los movimientos de almacén, consultar inventario, realizar entradas, salidas y transferencias a almacén.

Se como puedo resolverlo, haciendo por cada concepto un formulario y mandarlos llamar desde el menú principal, pero es algo tipico que me gustaria cambiarlo como lo comento.

Recapitulando, por ahora solo tengo el problema de como cierro el formulario TRASFERENCIAS (por ejemplo) para abrir el de ENTRADAS o algun otro según de click el usuario sobre algunos de los otros botones antes mencionados.

Espero haberme explicado.

Saludos y gracias a todos por su tiempo.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #7  
Antiguo 24-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Ya supe como cerrarlo...sencillo.

Ahora a los formularios (fsNormal) que viualizo dentro del formulario MDIChild, tienen un comportamiento raro cuando les agrego a panels, no se ajustan al total de la pantalla del MDIChild, ambos formularios tiene el Align:=alClient, y también por código se lo especifico nuevamente...:

Código Delphi [-]
    if frmEntradas.Visible then
         frmEntradas.Close;
    frmTransferencias := TfrmTransferencias.Create(Self);
    frmTransferencias.Show;
    frmTransferencias.Parent := Self;
    frmTransferencias.Align  := alClient;
    frmTransferencias.Width  := frmMovtosAlmacen.Width;
    frmTransferencias.Height := frmMovtosAlmacen.Height div 2;

pero no se alienan o se ajusta al formulario MDIChild, si no hasta que redimensiono (manualmente con el mouse) en tiempo de ejecución el formulario MDIChild. También especifique en los formularios fsNormal en su propiedad "WindowsState" a "wsMaximized" y pues tampoco tiene efecto, sigue igual, sin cambios.

Espero me puedan ayudar. Gracias nuevamente por su tiempo.

SALUDOS !!
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #8  
Antiguo 24-03-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Seguramente por que te he entendido mál, intenté reproducir la situación que mencionas pero no lo logro, el formulario fsNormal siempre se ajusta al cliente del fsMDIChild:

Lo único que veo extraño en tu código es que dos líneas quedan invalidadas por el valor que recibió la propiedad Align:
Código Delphi [-]
  frmTransferencias.Align  := alClient;           // <- 
  // -> estas dos:
  frmTransferencias.Width  := frmMovtosAlmacen.Width;
  frmTransferencias.Height := frmMovtosAlmacen.Height div 2;
Aunque no explica el comportamiento que comentas...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 24-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Seguramente por que te he entendido mál, intenté reproducir la situación que mencionas pero no lo logro, el formulario fsNormal siempre se ajusta al cliente del fsMDIChild:

Lo único que veo extraño en tu código es que dos líneas quedan invalidadas por el valor que recibió la propiedad Align:
Código Delphi [-]
  frmTransferencias.Align  := alClient;           // <- 
  // -> estas dos:
  frmTransferencias.Width  := frmMovtosAlmacen.Width;
  frmTransferencias.Height := frmMovtosAlmacen.Height div 2;
Aunque no explica el comportamiento que comentas...

Saludos
Que tal.

Gracias por contestar.

Al formulario fsNormal, agregale una panel....y ejecuta tu aplicación. No sé si tenga algo que ver, pero veo q manejas una versión delphi mayor a la q yo uso q es Delphi6, siento q no, pero podrá ser la causa?.

Con respecto al Align, los quitaré de mi código. Hice una prueba con mis formularios fsNormal, si ningun PANEL....Y SÍ SE AJUSTA AUTOMATICAMENTE!!!...esto me hace pensar que los paneles influyen en ese comportamiento que te comento.

Saludos y gracias por tu tiempo. Seguiré buscando.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #10  
Antiguo 24-03-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Con el panel sigue alineando:

Tal vez sea la versión... lamento no tener Delphi 6 para probar.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 24-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.
Con el panel sigue alineando:

Tal vez sea la versión... lamento no tener Delphi 6 para probar.

Saludos
Gracias.

Fijate q los paneles los tengo alineados a TOP o BOTTOM, bueno tengo 3 paneles 1 a TOP el 2 al CLIENT y el 3 a BOTTON...intentalo asi...a ver q efecto te da?

Gracias.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #12  
Antiguo 24-03-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Sigue alineando:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 24-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Sigue alineando:


Saludos
Pues entonces es mi versión de Delphi.....que lástima, me había gustado esta forma para mostrar las pantallas al usuario...ni modo, tendré que mostrarlas por separado y no en un mismo formulario o bien seguir viendo el comportamiento con PageControl, ya habia empezado ahi, pero quize explorar esta opción...ya que con el PageControl me estaba liando mas...con los datos, abrir, cerrar...en fin.

En fin...te agradezco enormemente tu apoyo y tu tiempo.

Saludos !!!
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 24-03-2020 a las 19:59:33.
Responder Con Cita
  #14  
Antiguo 24-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Sigue alineando:


Saludos

Fijate, así me muestra la pantalla.
Imágenes Adjuntas
Tipo de Archivo: jpg Imagen1.jpg (31,8 KB, 3 visitas)
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #15  
Antiguo 25-03-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
Fijate, así me muestra la pantalla.
Bueno el problema, se resolvió con esto:
Código Delphi [-]
    frmMovtosAlmacen.Height:=449;
    frmMovtosAlmacen.Height:=450;

Código del procedimiento:
Código Delphi [-]
procedure TfrmMovtosAlmacen.sBtnTransfClick(Sender: TObject);
begin
    if frmEntradas.Visible then
         frmEntradas.Close;
    frmTransferencias := TfrmTransferencias.Create(Self);
    frmTransferencias.Show;
    frmTransferencias.Parent := ScrollBox1;
    frmTransferencias.Align  := alClient;
    frmTransferencias.Width  := frmMovtosAlmacen.Width;
    frmTransferencias.Height := frmMovtosAlmacen.Height;
    frmTransferencias.WindowState:=wsMaximized;
    frmMovtosAlmacen.Height:=449;
    frmMovtosAlmacen.Height:=450;
end;

Tuve que re dimensionar por código el formulario MDChild para que el formulario fsNormal, mostrara sin problemas los paneles....
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
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
Como abrir forms dentro de otro form anubis Lazarus, FreePascal, Kylix, etc. 7 18-08-2016 01:54:10
Interactuar con forms dentro de otra form cd.rafael Lazarus, FreePascal, Kylix, etc. 2 13-01-2016 17:16:33
Form dentro de otro Malparo Varios 8 12-01-2011 13:49:38
Delphi exe dentro de otro exe midnight Varios 4 09-06-2007 16:19:54
Visualizar Forms de otro proyecto karocs Varios 5 08-07-2005 17:41:40


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


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