Hola,
Existe una unidad en Delphi 7 de nombre "XpMan.pas". Esta unidad se limita exclusivamente a añadir al ejecutable (como un recurso más) el archivo "WindowsXP.res", que puede encontrarse en: "C:\Archivos de programa\Borland\Delphi7\Lib".
Pues bien, dicho archivo ".res" contiene el siguiente XML:
Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="DelphiApplication"
version="1.0.0.0"
processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
</assembly>
El cual es "leído" por Windows cuando se ejecuta el ejecutable que lo contiene. Entonces Windows aplica a los controles "comunes" ("TEdit", "TButton", "TMemo", "TMainMenu", etc.) que contenga dicho ejecutable, le aplica, digo, el tema que esté establecido en Windows XP.
¿Si te sirve de algo en Delphi 2007? Ignoro siquiera si se incluye la unidad "XpMan.pas", empero, a no ser que se incluya el recurso "WindowsXP.res" por defecto en los ejecutables (cosa que dudo, pero por pura intuición), si quieres que tu programa adopte el tema de Windows XP... deberá usarse igual que en Delphi 7, por ejemplo.
En general podría decirse que cualquier ejecutable (de Delphi o de otro lenguaje/entorno) que contenga el XML referido (como un recurso más dentro del ejecutable), tomará en sus controles comunes (de Windows) la apariencia del tema de Windows XP que esté usando el usuario.
PD. Pero no mezclemos distintos temas en un mismo Hilo que puedo acabar echándome la bronca a mí mismo y no veas tú qué compromiso.