Ver Mensaje Individual
  #2  
Antiguo 05-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 24
maeyanes Va por buen camino
El procedimiento que muestras, lo envías desde algún manejador de eventos o es un manejador de eventos de algún componente que hayas creado?

A simple vista no le veo nada raro...

Código Delphi [-]
procedure TForm1.ActivarEtiquetas(Sender:TObject; Estado, Todas: Boolean);
var
  Contenedor: TPanel;
  Etiqueta: TLabel;
  I: Integer;

begin
  if Todas then
  begin
    Contenedor := (Sender as TPanel);
    for I := 0 to Contenedor.ControlCount - 1 do
      if Contenedor.Controls[i] is TLabel then
        TLabel(Contenedor.Controls[i]).Enabled := Estado
  end
  else
    (Sender as TLabel).Enabled := Estado
end;

La propiedad ControlCount te dice cuantos controles tienen como Parent al control especificado, entonces, Contenedor.ControlCount te indica cuantos controles tienen a Contenedor como Parent...

Ahora, si te fijas, le hice un pequeño cambio a tu código, y este fue que, luego de verificar que Contenedor.Controls[i] is TLabel, ya no es necesario usar el operador as para convertir el control a un TLabel, ya es seguro hacer TLabel(Contenerdor.Controls[i]).Enabled := Estado.


Saludos...
Responder Con Cita