Ver Mensaje Individual
  #4  
Antiguo 03-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 Gustavo.

Una opción más elaborada de manejar los componentes es utilizando TComponenList. Tenés que incluir la unit Contnrs.

Un ejemplo:
Código Delphi [-]
uses ..., Contnrs.
...
 TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    FCmpList: TComponentList;
    function ObtenerComponentes(const ParentName: string): TComponentList;
  public
  end;

....

{ Devuelve Lista de componentes con un determinado Parent }
function TForm1.ObtenerComponentes(const ParentName: string): TComponentList;
var
  i: Integer;
begin
  Result:= TComponentList.Create;
  for i:= ComponentCount - 1 downto 0 do
   if Components[i].GetParentComponent.Name = ParentName then
    Result.Add(Components[i])
end;

{ Cargar Lista }
procedure TForm1.FormShow(Sender: TObject);
begin
  FCmpList:= TComponentList.Create(True);
  FCmpList:= ObtenerComponentes('Panel1');
end;

{ Hacer algunas operaciones sobre la lista }
procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
begin
  // desactivar los controles de Panel1
  for i:= 0 to FCmpList.Count -1 do
    (FCmpList.Items[i] as TControl).Enabled:= False;
  // activar Label1
  (FCmpList.Items[FCmpList.IndexOf(Label1)] as TControl).Enabled:= True;
  // Borrar un elemento
  FCmpList.Items[FCmpList.IndexOf(Memo1)].Free;
end;
...

{ Liberar lista }
procedure TForm1.FormDestroy(Sender: TObject);
begin
  FCmpList.Free;
end;


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita