PDA

Ver la Versión Completa : Dejar que el usuario seleccione apariencia


The Cid James
07-12-2017, 00:24:36
Buenas gente, quisiera que las configuraciones del soft el usuario elija las la apariencia del programa, pero no he encontrado mucha informacion al respecto sobre como hacerlo.

Lo que tengo pensado es que por medio de un combobox selecciones la apariencia del programa, y al reiniciar se vea con la apariencia nueva por lo que lei esto no se puede hacer en tiempo de ejecucion lo que obliga a que se reinicie el soft para hacer los cambios

ecfisa
07-12-2017, 00:27:16
Hola.

¿ A que aspectos del aspecto del programa te referís con la apariencia ?

Saludos :)

The Cid James
07-12-2017, 00:47:20
A que el usuario elija las apariencia que se encuentran el Porject >> Options >> Appearance (aqua, carbon, windows,luna), así selecciona el style que desee

WHILENOTEOF
07-12-2017, 01:08:55
No sé en versiones anteriores, pero yo estuve viendo ayer unas demos que vienen con Delphi Seattle sobre los controles para Windows 10 (split view, search box, etc) y casi todas ellas tenían la opción de seleccionar desde un combo un estilo y la aplicación se ajustaba al nuevo skin sin salir de ella. Incluso en youtube me suena a ver visto algún tutorial sobre ello.

el-mono
07-12-2017, 02:27:05
Esto es lo que necesitas.

https://jachguate.wordpress.com/2012/11/30/delphi-xe2-xe3-creando-aplicaciones-vcl-con-estilo/

The Cid James
07-12-2017, 05:35:43
Esto es lo que necesitas.

https://jachguate.wordpress.com/2012/11/30/delphi-xe2-xe3-creando-aplicaciones-vcl-con-estilo/
Lastima que no esta el codigo disponible para verlo, y no me sirvio el copilador me dice que stylemanager es una variable no definida

No sé en versiones anteriores, pero yo estuve viendo ayer unas demos que vienen con Delphi Seattle sobre los controles para Windows 10 (split view, search box, etc) y casi todas ellas tenían la opción de seleccionar desde un combo un estilo y la aplicación se ajustaba al nuevo skin sin salir de ella. Incluso en youtube me suena a ver visto algún tutorial sobre ello.

No estoy usando ninguno de esos controles de windows 10 , aunque tengo la 10.2 voy a investigar

Sigo buscando

dec
07-12-2017, 10:08:17
Hola,

En el artículo de jachguate se describe todo perfectamente: hay algún problema con el enlace para descargar el ejemplo, pero, todo está explicado en el texto del propio artículo, por ejemplo:


En tiempo de corrida, podemos valernos de la clase TStyleManager, de la unidad Vcl.Themes para interrogar a la aplicación sobre los estilos disponibles, a través de su propiedad StyleNames, que es un arreglo de strings.


Todo lo que necesitas (si no me equivoco) es la clase (no variable) "TStyleManager", y, dicha clase se declara en la unidad "Vcl.Themes". Incluyendo esta unidad en tu proyecto ya podrías usar "TStyleManager" como describe jachguate. Por otro lado, creo recordar que ya el primer Delphi que soportó estos "temas" incluía algún ejemplo sobre esto... busca en la carpeta de ejemplos por "Styles" o algo así. Aunque con el artículo del compañero es suficiente también.

The Cid James
07-12-2017, 11:31:41
Habia entendido mal gracias por la aclaración ...

Se agradece la ayuda :D

WHILENOTEOF
07-12-2017, 21:21:27
Lastima que no esta el codigo disponible para verlo, y no me sirvio el copilador me dice que stylemanager es una variable no definida



No estoy usando ninguno de esos controles de windows 10 , aunque tengo la 10.2 voy a investigar

Sigo buscando


Si tienes la 10.2, esos mismos ejemplos estarán, y no son necesarios los controles, sirven para cualquier control que vienen con Delphi, lo que pasa es que en los ejemplos donde se muestran esos controles es donde lo ví.

The Cid James
08-12-2017, 01:35:28
Si logre que funcione el cambio, por lo menos en tiempo de ejecucion pero no logro hacer que se guarde el cambio, una vez que cierra el programa cuando lo vuelvo a ejecutar queda el que esta por defecto... alguna sugerencia?

maeyanes
08-12-2017, 16:50:34
Hola...

Guarda el valor del estilo seleccionado en un archivo ini o en el registro o donde guardes las configuraciones de tu programa y cuando inicies este, lees esa configuración y la aplicas.


Saludos...

The Cid James
08-12-2017, 22:49:35
Tenia entendido que se guarda en el .exe de la app aqui

Application.Initialize;
Application.MainFormOnTaskbar := True;
TStyleManager.TrySetStyle('Carbon');

Eso se puede modificar una vez copilado?

maeyanes
09-12-2017, 16:18:01
Hola...

Así es, ahí lo que estás haciendo es asignar un estilo en tiempo de ejecución...


Saludos...

The Cid James
10-12-2017, 00:39:30
Entonces podria usar en vez de ('carbon') como ruta algo asi com //program files//nombre del programa?

AgustinOrtu
10-12-2017, 20:52:14
Lo que debes guardar en algun lado es el nombre del estilo que selecciona el usuario. Luego, cuando el programa inicia, en lugar de hacer


Application.Initialize;
Application.MainFormOnTaskbar := True;
TStyleManager.TrySetStyle('Carbon');


Haces algo como esto:


Application.Initialize;
Application.MainFormOnTaskbar := True;
TStyleManager.TrySetStyle(GetUserSavedStyle);


Donde GetUserSavedStyle es la funcion que devuelve el string que el usuario guardo (ya sea en un archivo, en el registro de windows, en una base de datos, etc). Si tenes problemas con esto, en el foro tenes toneladas de informacion y ejemplos. Simplemente debes entender que el "estilo" es simple string, con solo asignar ese string usando TStyleManager.TrySetStyle, la aplicacion cambiara su apariencia

The Cid James
11-12-2017, 19:05:53
Lo que debes guardar en algun lado es el nombre del estilo que selecciona el usuario. Luego, cuando el programa inicia, en lugar de hacer

Application.Initialize; Application.MainFormOnTaskbar := True; TStyleManager.TrySetStyle('Carbon');


Haces algo como esto:

Application.Initialize; Application.MainFormOnTaskbar := True; TStyleManager.TrySetStyle(GetUserSavedStyle);


Donde GetUserSavedStyle es la funcion que devuelve el string que el usuario guardo (ya sea en un archivo, en el registro de windows, en una base de datos, etc). Si tenes problemas con esto, en el foro tenes toneladas de informacion y ejemplos. Simplemente debes entender que el "estilo" es simple string, con solo asignar ese string usando TStyleManager.TrySetStyle, la aplicacion cambiara su apariencia

Muchas gracias estoy investigando como trabajar con los .ini que fue lo que me recomendaron