Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Deshabilitar Componentes de un GroupBox (https://www.clubdelphi.com/foros/showthread.php?t=60365)

rgstuamigo 29-09-2008 23:55:21

Deshabilitar Componentes de un GroupBox
 
Hola amigos foristas, quisiera saber como desabilitar(enabled)los componentes contenidos en GroupBox para poner sus propiedades enabled:=false.
Osea quiero recorrer el contenedor sacar referencia de cada componente u poner su propiedad enabled:= false.
Pense que tal ves poniendo el GroupBox su enabled en false serviria, desde luego, pero los componentes que contiene no se comportan visiblemente como un enabled, y lo que quiero en que se pongan (que se vea como componentes enabled)me entienden.De ahi la idea de recorrer todo el contenedor,sacar uno a uno los componentes,y ponerlos en enabled.
Pero me encuentro con que un que la Clase TComponent no tiene la propiedad enabled. Aqui pongo un poco de codigo sobre el caso:

Código Delphi [-]
procedure TForm5.DesabilitarGrupos(g: TGroupBox); 
var i:Byte; co:TComponent;
 begin       
 for i:=0 to g.ComponentCount-1 do
   begin 
          co:=g.Components[i];
           //co.Enabled:=False; --? Aqui no sale la propiedad enable
           //¿Que hago?  
   end;
end;

Cualquier ayudita es bien recibida.:cool:

DarkMan 30-09-2008 00:32:43

Para utilizar la propiedad enabled de todos los componentes debes referenciarlos utilizando la clase TControl:
Código Delphi [-]
procedure TForm5.DesabilitarGrupos(g: TGroupBox); 
var 
  i: Byte; 
begin 
  for i:=0 to g.ComponentCount-1 do 
    (g.Components[i] as TControl).Enabled:=False;
end;

rgstuamigo 30-09-2008 20:20:14

Gracias amigo Darkman por responder, pero de esa forma que tu dices, me salia un error parece ser que no puede encontrar la cantidad de componentes del GroupBox, lo depure y me sale que que siempre la linea (g.ComponentCount) me sale 0(cero)aunque el GroupBox tenga componentes.
Finalmente lo resolvi de la siguiente manera:

Código Delphi [-]
procedure 
TForm5.DesabilitarGrupos(g: TGroupBox); 
var i:Byte;
 begin    
    for i:=0 to g.ControlCount-1 do
           g.Controls[i].Enabled:=False;
 end;

Para que hacer casting si se puede obtener el control directamente:confused:, Bueno la verdad no sabia que hacia la clase TControl pero tu ejemplo me ayudo a darme cuenta.Gracias amigo:D
ah tu sabes por que las etiquetas para que se vea como codigo delphi no me funciona?por que le pongo etiquetas delphi a mis codigos que pongo en mis respuestas pero me lo desordena el codigo y al final me sale igual no mas....¿será por que no soy usuario premiun?

DarkMan 01-10-2008 13:55:50

Cita:

Empezado por rgstuamigo (Mensaje 317280)
ah tu sabes por que las etiquetas para que se vea como codigo delphi no me funciona?por que le pongo etiquetas delphi a mis codigos que pongo en mis respuestas pero me lo desordena el codigo y al final me sale igual no mas....¿será por no soy usuario premiun?

Es un pequeño bug que tiene el foro, cuando creas una etiqueta en un mensaje y le das a vista previa, la etiqueta se altera (se elimina). La solución es postear el mensaje directamente y si existe algo mal que debas editar lo editas con el boton 'edit'.

rgstuamigo 02-10-2008 00:32:47

Gracias amigo DarkMan;)


La franja horaria es GMT +2. Ahora son las 13:28:15.

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