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
  #61  
Antiguo 10-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
Pues acabo de volver a probarlo y a mi me funciona.
Prueba este dpr:
Archivos Adjuntos
Tipo de Archivo: zip formdetras.zip (2,3 KB, 11 visitas)
Responder Con Cita
  #62  
Antiguo 10-03-2013
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
Sigue sin funcionarme. Igual es la versión de Delphi. Para poder probarlo, he tenido que quitar en los "uses" todas las referencias: "Winapi." "Vcl." "System." ya que no las reconocía, y eliminar entonces los uses dobles que quedaban.
Responder Con Cita
  #63  
Antiguo 12-03-2013
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
Hay un truco, que conozco desde mi época de Visual Basic, para crear ventanas flotantes (tipo barras de herramientas de Office), que consistiría en:

Código Delphi [-]
const
  SWW_hParent = -8;

 ...

SetWindowLong(FormFlotante.Handle, SWW_hParent, FormPadre.Handle)


Esta forma permite más posibilidades, como crear una jerarquía de ventanas.

Ejemplo:

Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);
const
  SWW_hParent = -8;
begin
  SetWindowLong(Form2.Handle,SWW_hParent,Form1.Handle);
  Form2.Show;

  SetWindowLong(Form3.Handle,SWW_hParent,Form2.Handle);
  Form3.Show;
end;
Responder Con Cita
  #64  
Antiguo 12-03-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Algo más sencillo que puedes usar en las nuevas versiones de Delphi

Establece la propiedad PopupMode del formulario a pmAuto y por último, crea el formulario superior como hijo directo del formulario padre/principal. Por ejemplo:

Código Delphi [-]
FormHijo := TFormHijo.Create(FormPadre);

Saludos!

Enlaces:
Propiedad PopupMode.
WS_POPUP (Para versiones de Delphi que no traen la propiedad PopupMode de TCustomForm.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #65  
Antiguo 12-03-2013
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
Sí, es eso mismo. Incluso se puede establecer la propiedad PopupMode por código a posteriori:

Código Delphi [-]
FormHijo := TFormHijo.Create(FormPadre);
FormHijo.PopupMode := pmAuto;
FormHijo.Show;

Aunque no se comporta exactamente igual. Me explico, con el siguiente código:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(Form1);
  Form2.PopupMode := pmAuto;
  Form2.Show;

  Form3 := TForm3.Create(Form1);
  Form3.PopupMode := pmAuto;
  Form3.Show;
end;

El Form3 se comporta como si fuese hijo del Form2, no del Form1. Y no entiendo por qué.

Saludos!
Responder Con Cita
  #66  
Antiguo 12-03-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por alsn Ver Mensaje
Sí, es eso mismo. Incluso se puede establecer la propiedad PopupMode por código a posteriori
Aunque lo puedes hacer, la documentación de Delphi aconseja que lo hagas esclusivamente en tiempo de Diseño.

Cita:
Empezado por alsn Ver Mensaje
Aunque no se comporta exactamente igual. Me explico, con el siguiente código:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
    ....
end;

El Form3 se comporta como si fuese hijo del Form2, no del Form1. Y no entiendo por qué.

Saludos!
No entiendo realmente que esté pasando. Hace un tiempo hice una aplicación usando estas propiedades, pero los formularios no se comportan a cómo mencionas. No recuerdo que configuración en especial estaba utilizando para que no me diera este inconveniente. Habría que probar distintas combinaciones.

Saludos.

PD.: Probá estableciendo la propiedad PopupMode en tiempo de diseño exclusivamente.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #67  
Antiguo 12-03-2013
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
También lo había probado así, por si fuera eso.

Saludos!
Responder Con Cita
  #68  
Antiguo 12-03-2013
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
A ver, si hago lo siguiente:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(Form1);
  Form2.Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Form3 := TForm3.Create(Form1);
  Form3.Show;
end;

Sí se comportan de la manera esperada. Pero, estando en el mismo procedimiento se comportan como he dicho anteriormente.

Saludos
Responder Con Cita
  #69  
Antiguo 13-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
Pues a mi me funciona

Al menos en XE2 funciona con el ejemplo que te di. Mira este video a ver si se acerca a lo que quieres.
http://www.ricardoplaza.com/download/formdetras.mp4
Responder Con Cita
  #70  
Antiguo 14-03-2013
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
Efectivamente, es eso Ricardo. En el uso de CreateParams me funcionan, por ejemplo, los códigos de esta página:
http://delphi.about.com/od/formsdialogs/l/aa073101b.htm
Pero con WS_EX_NOACTIVATE no marcha en mi caso.

Un saludo
Responder Con Cita
  #71  
Antiguo 14-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
que sistema operativo tienes? versión de delphi?
Responder Con Cita
  #72  
Antiguo 14-03-2013
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
Lo he probado en una máquina virtual con Windows XP y Turbo Delphi.
No me dedico a la programación, es más bien una afición. Aunque en alguna ocasión le he sacado provecho.
Responder Con Cita
  #73  
Antiguo 14-03-2013
ricardopl65 ricardopl65 is offline
Miembro
 
Registrado: nov 2008
Posts: 25
Poder: 0
ricardopl65 Va por buen camino
deberias probar con un windows real y un delphi completo, a ver que tal, seguro ese es el problema
Responder Con Cita
  #74  
Antiguo 14-03-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por alsn Ver Mensaje
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(Form1);
  Form2.PopupMode := pmAuto;
  Form2.Show;

  Form3 := TForm3.Create(Form1);
  Form3.PopupMode := pmAuto;
  Form3.Show;
end;

El Form3 se comporta como si fuese hijo del Form2, no del Form1. Y no entiendo por qué.

Saludos!
Si aún lo quieres hacer así, la siguiente oración que extraigo de una entrada de la ayuda de Delphi te puede aclarar:
Cita:
Empezado por Delphi
If the PopupMode property is set to pmAuto, Screen.ActiveForm is used as the PopupParent property.
En este caso tendrás que establecer las propiedades PopupMode a pmExplicit y PopupParent a Form1 (en este caso Form1 es el formulario padre).

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #75  
Antiguo 15-03-2013
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
Así sí se puede elegir el formulario padre de manera precisa.

Muchas gracias!
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
Orden formularios newtron Varios 10 06-10-2011 14:03:37
Paneles en Orden ...... Efren2006 OOP 9 11-06-2010 12:36:02
Splash screen ,o splashscreen ,o form o ventana de inicio ,o orden de formularios Peterman C++ Builder 2 29-05-2007 19:46:22
Orden en TIBDataset barman Conexión con bases de datos 6 27-11-2003 10:40:25
Orden en TIBDataset barman Firebird e Interbase 6 24-11-2003 21:26:00


La franja horaria es GMT +2. Ahora son las 12:54:13.


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