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 05-11-2008
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Abrir un TForm dentro de un panel

Explico: Tengo una ficha de articulos, donde se muestran sus datos básicos (descripción, marca, modelo, fabricante...) y además tengo un PageControl con varias pestañas donde muestro otro tipo de información: Una pestaña para tarifas, otra para estadisticas, otra para stock por almacenes, otra con los datos de los posibles proveedores.... el caso es que cuando abro la ventana se cargan un montón de querys, lo que ralentiza la apertura de la ficha de artículo cuando a lo mejor sólo quiero ver el stock que hay o las tarifas. Así que he pensada que en vez de usar un PageControl, poner botones o un TabControl y cada vez que lo pulse abrir el form correspondiente (con las querys consecuentes) dentro del form de la ficha de artículos, en un panel o un olecontainer o algo así (ojo, no estoy hablando de MDI). Puedo tener varias fichas de artículos abierta a la vez (la aplicación sí es MDI).

Gracias por vuestra colaboracion.
Responder Con Cita
  #2  
Antiguo 05-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola afxe, solo tienes que asiganrle al Parent del formulario tu panel.

Código Delphi [-]
 Form2.Parent := Panel1;
 Form2.Align:=alClient;
 Form2.Show;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 05-11-2008
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Gracias... había intendo eso, pero me dio un fallo de que no se podia pasar el foco a una ventana invisible y pensé que no era factible, con tu post me dí cuenta que el fallo vendría por otro motivo.
Responder Con Cita
  #4  
Antiguo 08-11-2008
Avatar de casacham
casacham casacham is offline
Miembro
 
Registrado: abr 2006
Ubicación: Cordoba->Argentina. Arboleas->Almeria->España
Posts: 184
Poder: 19
casacham Va por buen camino
La solucion a tus problemas

Aqui va un procedimiento que resuelve tu problema


Código Delphi [-]
 
procedure CargarFormulario(NuevaClase: TFormClass; NuevoForm: TForm;
                           Self: TComponent; Contenedor: TWinControl);
begin
      if Contenedor.ControlCount > 0 then begin
          if Contenedor.Controls[0] is NuevaClase then Exit;
          NuevoForm.Free;
          TCustomForm(Contenedor.Controls[0]).Free;
      end;
      if Assigned(NuevaClase) then begin
         Try
            NuevoForm := NuevaClase.Create(Self);
            Screen.Cursor:=crAppStart;
            with NuevoForm do begin
                 Hide;
                 BorderStyle := bsNone;
                 Parent      := Contenedor;
                 Align       := alClient;
//               OnClose     := NuevaFormaClose;
                 Show;
                 SetFocus;
                 Screen.Cursor:=crDefault;
            end;
         Except
           Screen.Cursor:=crDefault;
           ShowMessage('Error de formulario');
         end;
      end;
end;



MODO DE USO


Código Delphi [-]
 
 
procedure TF_Prin.IngresarNuevo1Click(Sender: TObject);
begin
  //CargarFormulario(TForm1,Form1,Self,PanelDondeQuieresQueTeCargueElForm);
  CargarFormulario(TF_PCTE,F_PCTE,Self,PanelForm);
end;
__________________
La vida no trata de encontrarse a uno mismo, sino de crearse a uno mismo.
Tanto si piensas que puedes como si no, estarás en lo cierto

Última edición por casacham fecha: 08-11-2008 a las 20:53:06.
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
Ejecutar aplicación dentro de un Panel aeff API de Windows 5 08-10-2008 20:47:01
Crear un Objeto dentro de un Panel sancarlos OOP 24 21-07-2008 14:59:51
No funcionan componentes TSelectOnRuntime cuando estan controles dentro de un panel gulder API de Windows 6 11-08-2006 09:58:50
Como abrir una pagina web desde una Tform normal Martha Ayala Internet 3 24-10-2005 22:59:54
Crear un label dentro de un panel abogado Varios 1 28-03-2005 13:43:16


La franja horaria es GMT +2. Ahora son las 10:49:58.


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