¿No se están complicando mucho?
A quien se quiere cambiar de color es a un TWinControl y la propiedad Color aparece desde TControl. Sólo hay que desprotegerla:
Código Delphi
[-]
type THackControl = class(TWinControl);
...
procedure TBRGFocusAdmin.AplicarColor(Color :TColor; Componente: TWinControl);
begin
THackControl(Componente).Color := Color;
Componente.Repaint;
end;
// Saludos