Modificar una propiedad por su nombre

2527 vistas

Este método se basa en el uso de la RTTI (Run Time Type Information) para acceder a las propiedades de los componentes. En el ejemplo mostramos cómo cambiar la propiedad Color de todos los componentes que poseen dicha propiedad.

Es la solución más eficaz en el casi de tener que cambiar una propiedad sin necesidad de saber la clase del componente tratado (en este caso la propiedad Color como hemos dicho).



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.   i: Integer;
  4. begin
  5.   for i:=0 to ComponentCount - 1 do
  6.     if IsPublishedProp(Components[i], 'Color') and PropIsType(Components[i], 'Color', tkInteger) then
  7.       SetOrdProp(Components[i], 'Color', clRed);
  8. end;



Nota: hay que añadir la unidad TypInfo en la clausula Uses.