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 27-03-2005
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
Ventana dentro de otra

Hola, estoy haciendo una aplicacion, tipica proveedores,articulos, clientes... y tengo mi pantalla principal con mi menu, lo ke kiero es cuando le de a proveedores (por ejemplo) y se me abra un nuevo form (tipico form.show y eso) ke se me abra pero dentro de mi formulario principal para ke siempre este a mano el menu principal, ais como acen todos los programas. Espero haberme explicado bien.

Muchas Gracias Y Salu2!!!
Responder Con Cita
  #2  
Antiguo 28-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
La aplicación que deseas se llama aplicación MDI (Multiple Document Interface).

El formulario que quieres que actue de principal, ponle la propiedad:

FormStyle := fsMdiForm

Las ventanas que han de ser hijas, (o sea dentro) ponle esa propiedad a fsMDIChild.

Si necesitas más ayuda, busca por el foro por "ventana padre" "ventana hija" "existefrm", "cafree" se ha hablado ampliamente sobre el tema.

Por otra parte en DELPHI, File --> new --> other --> Projects --> MDI APPLICATION tienes un principio, puede servirte de ayuda.

Un saludo
Responder Con Cita
  #3  
Antiguo 28-03-2005
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
muchas gracias, eske nose ni como se yamaba ese tipo ni nada, por eso no he podido realizar ninguna buskeda, muchas gracias nuevamente, voy a buscar por el foro

Salu2!!!

Edito: Pues nada, ya lo he conseguido , muxisimas gracias!!! Solo una cosita, cuando abro mi form hijo lo he puesto ke salga maximizado para ke asi ocupe todo el espacio ke keda pero al crearse el formulario hijo aparece la ventana como en el diseño en delhpi y al 1/4 de segundo se maximiza, es decir ke se ve como se automaximiza la ventana sola. Me gustaria saber si es asi correcto el funcionamiento.

Última edición por CarmaZone fecha: 28-03-2005 a las 01:48:55.
Responder Con Cita
  #4  
Antiguo 28-03-2005
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
Cita:
Empezado por CarmaZone
cuando abro mi form hijo lo he puesto ke salga maximizado para ke asi ocupe todo el espacio ke keda pero al crearse el formulario hijo aparece la ventana como en el diseño en delhpi y al 1/4 de segundo se maximiza, es decir ke se ve como se automaximiza la ventana sola. Me gustaria saber si es asi correcto el funcionamiento.
Ese comportamiento se debe al efecto de animación de las ventanas. Para evitarlo puedes usar el siguiente procedimiento:

Código Delphi [-]
(*
  Enable = false inhabilita la animación
  Enable = true habilita la animación
*)
procedure EnableAnimation(Enable: Boolean);
var
  Info: TAnimationInfo;

begin
  Info.cbSize := SizeOf(TAnimationInfo);
  LongBool(Info.iMinAnimate) := Enable;
  SystemParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0);
end;

Antes de crear el formulario inhabilitas la animación y puedes restaurarla luego de creado:

Código Delphi [-]
EnableAnimation(false);
TVentanaHija.Create(Self);
EnableAnimation(true);

Nota sin embargo, que el mismo efecto aparecerá cada vez que maximices (o restaures) la ventana hija. Para evitarlo puedes hacer los mismo pero en el manejador del mensaje WM_SYSCOMMAND del formulario hijo:

Código Delphi [-]
interface

type
  TVentanaHija = class(TForm)
  private
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  end;

implementation

procedure TVentanaHija.WMSysCommand(var Msg: TWMSysCommand);
begin
  case Msg.CmdType and $FFF0 of
    SC_ZOOM, SC_RESTORE:
    begin
      EnableAnimation(false);
      inherited;
      EnableAnimation(true);
    end;

    else
      inherited;
  end;
end;

end.

Claro que podrías inhabilitar la animación al principio de la aplicación sin restaurarla con lo cual lo anterior sería innecesario. Pero ten en cuenta que la animación de ventanas es un efecto global del sistema de manera que si la inhabilitas en tu aplicación la inhabilitas en todo el sistema.

// Saludos
Responder Con Cita
  #5  
Antiguo 28-03-2005
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
Roman muchas gracias, aunke creo ke voy a dejarlo lo de las animaciones por ahora ya ke ay cosas ke no habia visto en mi vida y no tengo nivel para hacer cosas asi. Cada vez ke leo tus post me kedo flipao con los pedazos de codigos ke pones tambien me gustaria dar las gracias a todos por los foros ya ke se presta muy buena ayuda a pesar ke me muxos acemos preguntas de novatos ke las tendreis ya muy vistas

Gracias Y Salu2!!!
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 13:47:15.


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