Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Dejar que el usuario seleccione apariencia (https://www.clubdelphi.com/foros/showthread.php?t=92597)

The Cid James 07-12-2017 01:24:36

Dejar que el usuario seleccione apariencia
 
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 01:27:16

Hola.

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

Saludos :)

The Cid James 07-12-2017 01: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 02: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 03:27:05

Esto es lo que necesitas.

https://jachguate.wordpress.com/2012...cl-con-estilo/

The Cid James 07-12-2017 06:35:43

Cita:

Empezado por el-mono (Mensaje 523191)

Lastima que no esta el codigo disponible para verlo, y no me sirvio el copilador me dice que stylemanager es una variable no definida

Cita:

Empezado por WHILENOTEOF (Mensaje 523189)
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 11: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:

Cita:

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 12:31:41

Habia entendido mal gracias por la aclaración ...

Se agradece la ayuda :D

WHILENOTEOF 07-12-2017 22:21:27

Cita:

Empezado por The Cid James (Mensaje 523197)
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 02: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 17: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 23:49:35

Tenia entendido que se guarda en el .exe de la app aqui

Código Delphi [-]
Application.Initialize;
  Application.MainFormOnTaskbar := True;
  TStyleManager.TrySetStyle('Carbon');

Eso se puede modificar una vez copilado?

maeyanes 09-12-2017 17: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 01:39:30

Entonces podria usar en vez de ('carbon') como ruta algo asi com //program files//nombre del programa?

AgustinOrtu 10-12-2017 21: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

Código Delphi [-]
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  TStyleManager.TrySetStyle('Carbon');

Haces algo como esto:

Código Delphi [-]
  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 20:05:53

Cita:

Empezado por AgustinOrtu (Mensaje 523277)
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

Código Delphi [-]
  Application.Initialize;   Application.MainFormOnTaskbar := True;   TStyleManager.TrySetStyle('Carbon');


Haces algo como esto:

Código Delphi [-]
  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


La franja horaria es GMT +2. Ahora son las 22:14:50.

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