Непередаваемое ощущение сломанного тессеракта...    
  
 (Зато без лишних списков которые того гляди запутаются при повтором чтении  )

Это как-бы исправленный код для возможности пропатчить  несколько динамически созданных списков RadioButton .
(Разумеется все привязано к конкретной программе но сама по себе идея вполне масштабируется  )
- Код: Выделить всё
 E:=ScrollBox1.GetEnumeratorControls;// Левел 1  ( обычный ScrollBox)
while E.MoveNext do
  begin
  C1:=TPanel(E.Current);  If TPanel(C1).ControlCount>1 then // Левел 2  Панель параметра 
 begin
 C1:=TPanel(TPanel(C1).Controls[1]);//Левел 3  панель внутри панели   
//(возможно что это слабое место (нумерация контролов не очень надежная штука ), но пока вроде работает )
   
If (TPanel(C1).ControlCount>0) And (TPanel(C1.Controls[0]).ClassType=TRadioButton) then
 With TPanel(c1).GetEnumeratorControls do // Левел 4  собственно список RadioButton 
//(наконец врубился  фишку с GetEnumerator оказывается их можно вообще без переменной использовать )
 begin
 while MoveNext do UxTheme.SetWindowTheme(TWinControl(Current).Handle,nil,'');
 free;
 end;
 end
end;
E.Free;
(Интересно можно ли это "чудовище" немного оптимизировать ?  )
Добавлено спустя 9 минут 4 секунды:Alexander писал(а):Ну да, так и есть. Тогда может быть написать багрепорт разработчикам Лазаруса да и всё ?
Не думаю что это вина Лазаруса и Дельфи ... Это товарищи мелкомягкие мудрят. 
( При включении "плоского режима" все работает как часы так что  LCL все делает верно  )
Зы
Интересно можно ли принудительно отключить манифест?  Сдается мне что в этом случае многое станет работать как надо !
Зы Зы 
Замечен но продолен странный глюк (перестала показываться рамка выбора RadioButton  ) 
Ну поскольку я и так хотел поравить фокус при старте то это ерунда  легко задвинулась .
Но что это было не понял.  
 Впрочем это винда где периодически возможно почти ВСЕ !