Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 06:13:20.


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