Ver Mensaje Individual
  #7  
Antiguo 17-06-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Reputación: 21
defcon1_es Va por buen camino
Hola. Puedes hacer un procedimiento con los parámetros que necesites tener en cuenta y/o cambiar
Código Delphi [-]
procedure CambiarPropiedad(Contenedor: TForm; NumeroElemento: Integer; NuevoColor: TColor, Activar:Boolean);
var i:Integer;
begin
  for i := 0 to (Contenedor.ComponentCount - 1) do  
  begin         
    if (Contenedor.Components[i] is TEdit)
    then begin
      if TEdit(Contenedor.Components[i]).Name = 'Edit+IntToStr(NumeroElemento)
      then begin       
        TEdit(Contenedor.Components[i]).Color := NuevoColor;         
        TEdit(Contenedor.Components[i]).Enabled := Activar;         
      end;
    end;
  end;
end;

Esto está bien para 2 o 3 clases de componentes, pero si son 6 o mas clases de componentes que quieres cambiar sus propiedades,
es mejor aprovecharse de la RTTI (esa gran desconocida)

Código Delphi [-]
procedure CambiarPropiedad(Contenedor: TForm; Clase: String; NuevoColor: TColor; Activar:Boolean);
var i:Integer;
PropInfo: PPropInfo;
begin
  for i := 0 to (Contenedor.ComponentCount - 1) do  
  begin         
      if Contenedor.Components[i].ClassNameIs(Clase)
      then begin
// 2.-Buscamos si el componente tiene la propiedad 'Color'
       PropInfo := TypInfo.GetPropInfo(Contenedor.Components[i].ClassInfo, 'Color') ;
       if Assigned(PropInfo)
       then begin
// 3.-Damos el valor que queremos a la propiedad 'Color'
         TypInfo.SetOrdProp(Contenedor.Components[i], PropInfo, LongInt(NuevoColor));
// 4.-Buscamos si el componente tiene la propiedad 'Enabled'
         PropInfo := TypInfo.GetPropInfo(Contenedor.Components[i].ClassInfo, 'Enabled') ;
         if Assigned(PropInfo) then
// 5.-Damos el valor que queremos a la propiedad 'Enabled'
           TypInfo.SetOrdProp(Contenedor.Components[i], PropInfo, LongInt(Activar));
       end;
    end;
  end;
end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...

Última edición por defcon1_es fecha: 17-06-2011 a las 09:38:29.
Responder Con Cita