Ver Mensaje Individual
  #1  
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
Frames creados dinamicamente no se ven

Hola a todos!

Tengo un formulario que tiene un panel llamado PNLFiltro.
Tengo un Frame llamado FRMFiltro que tiene un Label y unos Edits para rellenar los parámetros de filtrado.

Debo crear dinámicamente tantos filtros como índices tenga.

El problema es que los crea, pero no se ven.

Este es el procedimiento que utilizo para crearlos.

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);
// ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** *****
// ***** AQUI EMPIEZA LO IMPORTANTE ** ***** ***** ***** ***** ***** *****
     //Primero borro los filtros anteriores
     with PNLFiltro do
     begin
        // La segunda vez pasa por aquí, por lo que se que se crean los frames
        for i := 0 to ComponentCount - 1 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
        aFiltro := TFRMFiltro.Create(PNLFiltro);
        aFiltro.CargaCampos(tsTitulo[i], StrToIntDef(tsIDIndice[i], 0));
        aFiltro.Align := alTop;
         // He probado con estas opciones, pero no reacciona
        aFiltro.Visible := True;
        aFiltro.Show;
        aFiltro.BringToFront;
     end;
     // Esto tampoco soluciona el problema
     PNLFiltro.Repaint;
// ***** AQUI TERMINA LO IMPORTANTE ** ***** ***** ***** ***** ***** *****
// ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** *****
  finally
     tsCodigo.Free;
     tsTitulo.Free;
     tsIDIndice.Free;
  end;
end;

Última edición por duilioisola fecha: 11-03-2011 a las 11:12:43.
Responder Con Cita