Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-07-2003
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Question Formulario Tipo Modal en proyecto MDI? que hago

Un saludo a todos los del foro. El problema es el siguiente necesito sacar un formulario tipo Modal el un proyecto MDI, hasta el momento coloco las demas pantallas en enable:= false, pero quiero quitarme el estar desabilitando las demas pantallas cuando saco una. Agradeceria la ayuda.

_________________
Un saludo a todos
Responder Con Cita
  #2  
Antiguo 16-07-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Qué no funciona mostrar el formulario con ShowModal?

// Saludos
Responder Con Cita
  #3  
Antiguo 16-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Aunque el proyecto sea MDI, puedes añadir formularios de tipo fsNormal. Yo utilizo estas ventanas no MDI, para crear ventanas modales.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 16-07-2003
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Pero no hay forma de creal una ventana tipo modal siendo esta una fsMDIChild. Necesito crearla de esta manera. Gracias por responder.
Responder Con Cita
  #5  
Antiguo 24-05-2007
aprendiz2 aprendiz2 is offline
Miembro
 
Registrado: dic 2006
Posts: 70
Poder: 18
aprendiz2 Va por buen camino
Cita:
Empezado por danytorres
Pero no hay forma de creal una ventana tipo modal siendo esta una fsMDIChild. Necesito crearla de esta manera. Gracias por responder.
Cierto, con fsMDIChild no la puedes mostrar Modal.

Si cambias ese formulario a fsNormal, ahi si lo podras abrir en forma Modal ( eso no afecta a tu proyecto MDI para nada. Pruebalo ).

En otras palabras, no te empeñes en que esta ventana tambien tiene que ser MDIChild.

( Comentario personal: He probado los proyectos MDI y no me gustan para nada, mucho problema en la programacion para lograr lo que uno desea... )

Encontre una solucion que me funciona bien...
1 - Da la apariencia de MDI, pero no lo es.
2 - Programacion es facil, como en ventanas normales...

Como ?
1 - El Form principal lo pongo en fsNormal.
2 - Los demas forms, los pongo en fsStayOnTop

De esta forma, da la apariencia que el Form de atras, si esta maximizado, envuelve a los demas Form que abren y cierran.

Los demas Forms siempre se mantienen al "frente" con respecto al principal, aunque se "toque" el form de atras.

Trae la ventaja de tener Forms Visibles e Invisibles , es mas facil la programacion para comunicar valores de un form a otro, en comparacion con los MDI, que hay mas restriccion.

Abrir modales no es ningun problema.

Bueno, esto es solo una opinion propia... cada quien con lo que funcione mejor....

Saludos, espero sirva de algo esto...
Responder Con Cita
  #6  
Antiguo 24-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
El mensaje original es de hace 4 años... pero bueno, las cosas en ese sentido no han cambiado mucho, los MDI siguen estando por ahí (aunque se desaconseja su uso) y la gente trabaja como quiere y le da la gana (esto último siempre ha sido así ).

El método que propones, me gusta aunque le veo un bug que no me gusta. La ventana que se abre oculta la barra de herramientas del supuesto MDI, al no ser un entorno MDI real, es normal que ocurra.

Otra solución del mismo estilo, es crear las ventanas asignándoles el padre hacia la ventana principal:
Código Delphi [-]
  childWindow := TForm1.Create(frmMain);
  childWindow.Parent := frmMain // esta línea se me olvidó y es la más importante  
Aunque tampoco me convence mucho los efectos que tiene.

Yo si prefiero a los MDI reales y la forma de trabajo con ellos me gusta bastante.

No suelo ocultar las ventanas, sino que las destruyo, pero alguna vez intenté esto y funcionaba:
Código Delphi [-]
type
  TBaseForm = class(TForm)
  private
    Fvisible: Boolean;
    procedure SetVisible(const Value: Boolean);
  public
    { public declarations }
    constructor Create(Aowner:TComponent); override;
    procedure Show;
    procedure Hide;
  published
    property Visible:Boolean read Fvisible write SetVisible;
  end;

implementation

uses publica;

{$R *.dfm}

constructor TBaseForm.Create(Aowner: TComponent);
begin
  inherited Create(aowner);
  visible :=  fsvisible in FFormState;
end;

procedure TBaseForm.Hide;
begin
  ShowWindow(Handle, sw_HIDE);
  FVisible := False;
  DoHide;
end;

procedure TBaseForm.SetVisible(const Value: Boolean);
begin
  if Value <> FVisible then
  begin
    if Value  then  Show
    else Hide;
  end;
end;

procedure TBaseForm.Show;
begin
  ShowWindow(Handle, sw_Show);
  FVisible := True;
  DoShow;
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 25-05-2007 a las 16:44:46. Razón: faltaba childwindow.Parent := frmMain
Responder Con Cita
  #7  
Antiguo 24-05-2007
Avatar de Monchi
Monchi Monchi is offline
Miembro
 
Registrado: jun 2006
Ubicación: Cordoba, Argentina
Posts: 18
Poder: 0
Monchi Va por buen camino
Yo uso los MDI y me gusta como funcionan, y no le afecta en nada tener un fsNormal para mostralo en Modal
Responder Con Cita
  #8  
Antiguo 24-05-2007
aprendiz2 aprendiz2 is offline
Miembro
 
Registrado: dic 2006
Posts: 70
Poder: 18
aprendiz2 Va por buen camino
Gracias Lepe !!

Muchas gracias por comentar, Lepe !!!

Me encanta ver respuestas como la suya, donde se ve un ejemplo practico y funcional !!!

Considero un gran privilegio para mi, el poder leer sus ayudas a mi persona y otros muchos mas en el foro.

Usted es de los grandes maestros, de quien hay que mucho que aprender, asi como Roman, Seoane, Jhony y otros grandes maestros que veo en el foro. ( disculpen, de memoria no me se todos los nicks ).

Los admiro mucho, sus sugerencias, soluciones y trucos son verdaderas obras de arte !

Es como ver obras de Miguel Angel, DaVinci, etc.

Para mi seria un honor el poder estar sentado cerca de personas como ustedes, ver como desarrollan sus programas, solo mirando, aprendiendo.. !!!

El foro es lo mas cercano a eso.... pero muy distante de lo que seria estar con el maestro.

Del maestro hay que aprender.. !!!

Gracias otra vez !!! Buen dia, y le deseo lo mejor a usted y a todos los foristas !!!!
Responder Con Cita
  #9  
Antiguo 16-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Este tema está duplicado y se ha respondido en este hilo http://www.clubdelphi.com/foros/show...&threadid=2285
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 16-07-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
De hecho lo que pasó es que quien formuló la pregunta cambió el hilo. ¡Niño malo!
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


La franja horaria es GMT +2. Ahora son las 11:52:43.


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