Один из способов добиться этого - использовать interfaces
.
Это немного (ручная) работа, но если вы хотите сделать это простым способом, вы можете просто определить интерфейс и убедиться, что все ваши формы реализуют этот интерфейс.
например:
type ITheme = interface
procedure SetTheme(const AColor : TColor);
end;
тогда в каждой из форм вы можете реализовать этот интерфейс.
Таким образом, чтобы изменить все цвета ваших форм, вам просто нужно вызвать 1 функцию:
procedure SetGlobalTheme(const AColor : TColor);
var Intf : ITheme;
begin
for i:=0 to screen.Formcount-1 do
begin
if Supports(Screen.Forms[i],ITheme,intf) then
intf.SetTheme(AColor);
end;
end;
Используя этот метод, вы получаете полный контроль над каждым цветом компонентов, хотя нужно еще немного кодировать. Альтернативой является использование предложения Дэвида о стилях VCL (если ваша IDE поддерживает его)