Ver Mensaje Individual
  #3  
Antiguo 11-03-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Es verdad!
Gracias Ñuñu... nunca lo hubiera adivinado...
Además, si creas más de uno, le debes asignar un nombre.

Al final queda así:

Código Delphi [-]
procedure TFMConsultaLotes.EFTipoLoteChange(Sender: TObject);
var
  tsCodigo, tsTitulo, tsIDIndice : TStrings;
  i : integer;
  aFiltro : TFRMFiltro;
begin
  inherited;
  ETituloTipoLote.Text := DMMain.DameTituloTipoLote(EFTipoLote.Text);

  {Aqui debe cargar los filtros}
  tsCodigo := TStringList.Create;
  tsTitulo := TStringList.Create;
  tsIDIndice := TStringList.Create;
  try
     DMMain.RellenaIndices(EFTipoLote.Text, tsCodigo, tsTitulo, tsIDIndice);
     //Primero borro los filtros anteriores
     with PNLFiltro do
     begin
        for i := ComponentCount - 1 downto 0 do
           if (Components[i] is TFRMFiltro) then
              Components[i].Free;
     end;

     // Ahora creo los frames con los filtros
     for i := 0 to tsCodigo.Count - 1 do
     begin
        // Creo una nueva instancia del Frame.
        // Se crea con un nombre generico y sin Parent
        aFiltro := TFRMFiltro.Create(PNLFiltro);
        // Cambio el nombre porque todos se crean con el mismo.
        aFiltro.Name := 'FRMFiltro'+IntToStr(i + 1);
        // Asigno Parent, para que se vea en este panel
        aFiltro.Parent := PNLFiltro;
        // Lo ubico en la ultima linea del panel
        aFiltro.Top := PNLFiltro.Height;
        // Lo alineo al Top, para que quede pegado al anterior
        aFiltro.Align := alTop;
        aFiltro.CargaCampos(tsTitulo[i], StrToIntDef(tsIDIndice[i], 0));
     end;
  finally
     tsCodigo.Free;
     tsTitulo.Free;
     tsIDIndice.Free;
  end;
end;
Responder Con Cita