Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Visualización Delphi en Windows 10 (https://www.clubdelphi.com/foros/showthread.php?t=97174)

newtron 17-01-2025 18:40:28

Visualización Delphi en Windows 10
 
Hola a tod@s.


Recientemente he cambiado mi antiguo windows 7 a windows 10 y me he encontrado con la sorpresa de que los colores de los formularios se ven bastante distintos. He preparado este ejemplo:





Este label es exactamente igual en las dos imágenes, la única diferencia es que uno es Delphi Berlin corriendo bajo windows 10 y la otra bajo windows 7. He estado revisando la configuración de pantalla, colores, etc tanto del windows como de delphi pero no encuentro de qué manera puedo hacer que aparezcan los colores de forma correcta.


¿Alguien sabría decirme algo sobre esto?


Gracias y un saludo.

Casimiro Notevi 17-01-2025 20:17:59

Parece engorroso:

El cambio en los colores de los formularios al pasar de Windows 7 a Windows 10 se debe principalmente a diferencias en el sistema de temas y estilos visuales de Windows. Windows 10 tiene un esquema de colores más moderno que afecta cómo se ven las aplicaciones clásicas, incluidas las desarrolladas con Delphi.
Aquí tienes algunas soluciones para abordar este problema y conseguir una apariencia consistente en ambos sistemas:
1. Usar colores específicos en lugar de los colores del sistema

En Windows, los colores predeterminados (como clBtnFace, clWindow, etc.) se ven afectados por el tema del sistema. Para evitar variaciones, puedes usar colores específicos (por ejemplo, RGB o constantes como clRed, clBlue, etc.) para los componentes de tus formularios.
Ejemplo:
Form1.Color := clWhite; // Fija el color de fondo del formulario Button1.Color := clGray; // Fija el color de un botón Sin embargo, esto hará que los colores no sigan el tema del sistema operativo, lo que podría romper la consistencia visual con otras aplicaciones.
2. Establecer estilos visuales en tu aplicación

Delphi permite habilitar o deshabilitar los estilos visuales que se aplican automáticamente según el sistema operativo. Esto afecta cómo se dibujan los componentes de la aplicación.
a) Usar el archivo manifest de tu aplicación

Un archivo manifest permite definir cómo tu aplicación interactúa con los temas del sistema operativo. Asegúrate de que la opción de estilos visuales esté activada en el proyecto.
  1. Ve a Project > Options > Application.
  2. Marca la casilla Enable runtime themes.
  3. Esto asegura que tu aplicación use los estilos de Windows modernos.
b) Deshabilitar temas visuales

Si quieres que la aplicación se vea como en Windows 7 (clásico), puedes desactivar los temas visuales globales en el código:
uses UxTheme; procedure TForm1.FormCreate(Sender: TObject); begin SetThemeAppProperties(0); // Deshabilita el uso de temas visuales end; Esto hará que tus formularios adopten un aspecto más neutral y menos dependiente del sistema.
3. Usar estilos personalizados

Si deseas un control total sobre los colores y el diseño de tus formularios, considera usar estilos VCL. Los estilos VCL permiten definir un tema consistente que se aplicará independientemente del sistema operativo.
Cómo aplicar un estilo VCL:
  1. Ve a Project > Options > Appearance.
  2. Selecciona un estilo de la lista o añade un estilo personalizado.
  3. En el evento OnCreate del formulario principal, puedes aplicar el estilo:
uses Vcl.Styles, Vcl.Themes; procedure TForm1.FormCreate(Sender: TObject); begin TStyleManager.TrySetStyle('Windows'); // Cambia 'Windows' por el nombre del estilo que quieras usar end; Puedes usar estilos que imiten la apariencia de Windows 7.
4. Usar controles de terceros para mayor personalización

Si los controles estándar no cumplen tus necesidades, puedes explorar bibliotecas de terceros como DevExpress, TMS o Virtual TreeView, que ofrecen controles con estilos y colores personalizables que no dependen de los temas del sistema.
5. Probar en máquinas virtuales

Si necesitas ajustar los colores para que se vean igual en ambos sistemas, instala ambas versiones de Windows (7 y 10) en máquinas virtuales. Esto te permitirá comparar los formularios y ajustar los colores hasta lograr un diseño consistente.
Recomendación final

La solución más práctica es usar estilos VCL o colores específicos en lugar de los colores del sistema. Esto asegura que la apariencia sea consistente entre versiones de Windows, sin necesidad de depender de cómo cada sistema maneja los temas visuales.

newtron 20-01-2025 10:01:31

Cita:

Empezado por Casimiro Notevi (Mensaje 561298)
Parece engorroso:

El cambio en los colores de los formularios al pasar de Windows 7 a Windows 10 se debe principalmente a diferencias en el sistema de temas y estilos visuales de Windows. Windows 10 tiene un esquema de colores más moderno que afecta cómo se ven las aplicaciones clásicas, incluidas las desarrolladas con Delphi.
Aquí tienes algunas soluciones para abordar este problema y conseguir una apariencia consistente en ambos sistemas:
1. Usar colores específicos en lugar de los colores del sistema

En Windows, los colores predeterminados (como clBtnFace, clWindow, etc.) se ven afectados por el tema del sistema. Para evitar variaciones, puedes usar colores específicos (por ejemplo, RGB o constantes como clRed, clBlue, etc.) para los componentes de tus formularios.
Ejemplo:
Form1.Color := clWhite; // Fija el color de fondo del formulario Button1.Color := clGray; // Fija el color de un botón Sin embargo, esto hará que los colores no sigan el tema del sistema operativo, lo que podría romper la consistencia visual con otras aplicaciones.
2. Establecer estilos visuales en tu aplicación

Delphi permite habilitar o deshabilitar los estilos visuales que se aplican automáticamente según el sistema operativo. Esto afecta cómo se dibujan los componentes de la aplicación.
a) Usar el archivo manifest de tu aplicación

Un archivo manifest permite definir cómo tu aplicación interactúa con los temas del sistema operativo. Asegúrate de que la opción de estilos visuales esté activada en el proyecto.
  1. Ve a Project > Options > Application.
  2. Marca la casilla Enable runtime themes.
  3. Esto asegura que tu aplicación use los estilos de Windows modernos.
b) Deshabilitar temas visuales

Si quieres que la aplicación se vea como en Windows 7 (clásico), puedes desactivar los temas visuales globales en el código:
uses UxTheme; procedure TForm1.FormCreate(Sender: TObject); begin SetThemeAppProperties(0); // Deshabilita el uso de temas visuales end; Esto hará que tus formularios adopten un aspecto más neutral y menos dependiente del sistema.
3. Usar estilos personalizados

Si deseas un control total sobre los colores y el diseño de tus formularios, considera usar estilos VCL. Los estilos VCL permiten definir un tema consistente que se aplicará independientemente del sistema operativo.
Cómo aplicar un estilo VCL:
  1. Ve a Project > Options > Appearance.
  2. Selecciona un estilo de la lista o añade un estilo personalizado.
  3. En el evento OnCreate del formulario principal, puedes aplicar el estilo:
uses Vcl.Styles, Vcl.Themes; procedure TForm1.FormCreate(Sender: TObject); begin TStyleManager.TrySetStyle('Windows'); // Cambia 'Windows' por el nombre del estilo que quieras usar end; Puedes usar estilos que imiten la apariencia de Windows 7.
4. Usar controles de terceros para mayor personalización

Si los controles estándar no cumplen tus necesidades, puedes explorar bibliotecas de terceros como DevExpress, TMS o Virtual TreeView, que ofrecen controles con estilos y colores personalizables que no dependen de los temas del sistema.
5. Probar en máquinas virtuales

Si necesitas ajustar los colores para que se vean igual en ambos sistemas, instala ambas versiones de Windows (7 y 10) en máquinas virtuales. Esto te permitirá comparar los formularios y ajustar los colores hasta lograr un diseño consistente.
Recomendación final

La solución más práctica es usar estilos VCL o colores específicos en lugar de los colores del sistema. Esto asegura que la apariencia sea consistente entre versiones de Windows, sin necesidad de depender de cómo cada sistema maneja los temas visuales.


Juer.... ¡¡menuda masterclass!! :D:D


El tema es que creo que no me he explicado lo suficiente. En ejecución los colores se ven correctamente porque tengo deshabilitados los "Runtime themes". Mi problema es en modo de edición, que se ve como pongo en la imagen y la verdad es que me despista bastante cuando tengo que buscar controles para moverlos o insertar nuevos.


Gracias y un saludo.


La franja horaria es GMT +2. Ahora son las 13:23:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi