Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2020
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Poder: 11
wilcg Va por buen camino
Gracias amigos por los aportes,
la idea de esta función es poder usarla de manera independiente desde toda la aplicación con tan solo invocar la función y una linea de código. Hasta el momento lo he hecho de esta manera y funciona perfecto, si hay un aporte en que se pueda corregir o mejorar excelente.
Código Delphi [-]
Procedure ShowFormTPanel( TfrmClass: TFormClass; Panel :TPanel );
var
  i : SmallInt;
  Lista: TList;
begin

  Lista := TList.Create;
  try
    Panel.GetTabOrderList(Lista);
    for i := 0 to Lista.Count - 1 do
      if TWinControl(Lista[i]) is TForm then
        if TForm(Lista[i]).ClassType = TfrmClass then
        begin
          TForm(Lista[i]).BringToFront;
          Exit;
        end;

    with TfrmClass.Create(Application) do
    begin
      Parent   := Panel;
      Align    := alClient;
      Position := poMainFormCenter;
      Show;
    end;

  finally
    Lista.Free;
  end;
end;

Uso:
Código Delphi [-]
ShowFormTPanel( TForm2, Pane1 );
y con respecto a liberar el form, en el evento OnClose de esta manera.
Código Delphi [-]
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;
Responder Con Cita
  #2  
Antiguo 01-04-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Yo la modificaría un poco,
Código Delphi [-]
procedure ShowFormIn(frmClass: TFormClass; Container: TWinControl);
var
  i : Integer;
begin
  for i := Screen.FormCount-1 downto 0 do
  if Screen.Forms[i] is frmClass then
  begin
    Screen.Forms[i].BringToFront;
    Exit;
  end;
  with frmClass.Create(Application) do
  begin
    Parent   := Container;
    Align    := alClient;
    Position := poMainFormCenter;
    Show;
  end;
end;

De ese modo te permitirá usar diferentes contenedores, por ejemplo:
Código Delphi [-]
begin
  ShowFormIn(TForm2, Memo1);
  ShowFormIn(TForm3, Edit1);
  ShowFormIn(TForm4, Panel1);
  ShowFormIn(TForm5, ListBox1);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 01-04-2020
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Poder: 11
wilcg Va por buen camino
Maestro ecfisa, gracias por la corrección. Ahora si ya esta completa.
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
Crear un TPanel dentro de un TPanel dentro de un TScrollBox TiammatMX OOP 6 10-02-2014 15:12:08
TForm y TFrame o TPanel se congela.... mrnovice OOP 0 03-09-2013 05:16:19
Crear instancias de objetos creados con TPanel Kandorf OOP 8 02-03-2010 08:43:56
Abrir un TForm dentro de un panel afxe OOP 3 08-11-2008 20:33:45


La franja horaria es GMT +2. Ahora son las 01:49:21.


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