![]() |
Cambiando Temas de la forma
Hola de nuevo a todos, esta vez vengo a preguntarles acerca del cambio de temas o skins en la forma, la cuestión es que tengo una forma principal en la que el usuario puede escoger de una lista un tema para aplicarle, pero lo que quiero hacer, es que al darle click a un botón una segunda forma se abre, pero esta no entra con el tema seleccionado.
Alguien sabe como puedo hacer eso? Muchas gracias a todos por su atención y ayuda brindada :) |
Buenas xangiesaurx,
no se que tipo de motor de skins usas, pero independientemente de esto asumo que no le habras dicho a la Form2 que use el Skin que tiene la Form1 verdad? En caso de ser un motor de skins automatico, puede que requiere un refresh o algo por el estilo |
Hola rocksoft, gracias por tu pronta respuesta, para el cambio de temas estoy usando TStyleManager (con Vcl.Themes y Vcl.Styles).
Perdón, me equivoque, le puse que era otro form, pero es un proyecto aparte y quiero que cuando se le mande llamar con la accion del boton, obtenga el mismo tema que la aplicación que lo llamó. |
Hola xangiesaurx,
por lo que entiendo, tienes dos aplicacciones independientes la una de la otra, verdad? en este caso tendras que guardar el valor numerico o nombre del skin o en la regitry de windows o en un archivo ini. asi cuando cambies el skin guardas el valor y cuando invoques la otra aplicaccion que lea el valor y listo :) espero que sea lo que buscas |
Sólo comentar que la traducción correcta de form es formulario. Lo digo porque de primeras pensé que estabas utilizando algún paquete para dibujar figuras geométricas (shapes) que usaban algún sistema de estilos tipo CSS.
|
Sólo comentar que una forma también es un formulario (acepción número diecisiete).
- |
Hmm ahora creo que me raye y perdí el hilo...:)
|
Cita:
De cualquier forma, hago mutis por el foro y ruego me disculpen. |
Gracias a todos por sus respuestas. :)
Si, así es rocksoft, son aplicaciones independientes, intentaré hacer como me comentas de guardarlo en un archivo ini y les comento como me va. Y de nuevo, muchas gracias por su ayuda. |
Hola xangiesaurx,
no creo que tengas problemas, si requieres un ejemplo pon Delphi ini y te saldan a montones, eso si no te olvides de usar
|
rocksoft, gracias.
Ahorita ando trabajando con eso, haciendo unas pruebas a ver que tal va. Si justamente tuve que agregar en los uses IniFiles :P Cualquier cosa o duda, paso a dejarla por aquí :) Gracias |
Hola a todos, vengo con malas noticias, trabajé con los archivos ini y me funciono perfectamente todo, pero en el trabajo al hacer la junta en la que vemos como avanzamos, me comentaron que no quieren que se creen archivos para manejar el cambio de temas, así que no se si se tienen alguna otra idea que me pueda ayudar?
Pensé que tal vez a través de los registros, pero acepto sugerencias que me ayuden a realizar este trabajo de manera más fácil. Gracias |
Hola xangiesaurx,
lo que te queda es enviar al ejecutar el exe un parametro. haber si te ayuda este link otra opcion seria, que cada vez que cambies de estilo, le cambies el nombre al ejecutable, myApp_rojo, myApp_azul, al cargar el app lees el nombre y aplicas el estilo, o usando numeros. Pero tampoco es una buena solucion. tambien podrias crear un soquet, lo que no tiene gran sentido para una cosa tan pequeña o usas el componente TTelepatia_o_BolaDeCristal (esto es broma ehh) |
Hahahaha, muchas gracias rocksoft, intentaré con el parámetro, a ver que tal me va, igualmente cualquier cosa que pase, vendré a molestarlos de nuevo :P
Gracias una vez más por el apoyo :) |
Ok, creo que estoy haciendo algo mal o de plano ya me complique de más y llegue a un bloqueo mental :confused:
Básicamente tengo en mi aplicación A la siguiente línea de código en la parte donde ejecuto la aplicacion B
Y en la aplicacón B (que es quien recibe el mensaje)
Donde AddStylesMenu es donde aplico los Temas. Ahora, el problema es que para generar la ventana utilizo:
Por lo que todo lo que hago dentro de WMGetData no se aplica por que no esta dentro del FormCreate, como puedo solucionar esto? |
Ok, parece que haciendo eso se me esta complicando mucho, así que que me comentaron que existe una forma de hacer eso a través de los registros, que el tema o skin se queda almacenado en el registro y simplemente tendría que leerlo para aplicárselo a mi aplicación, la cuestión es que nunca eh manejado registros desde mis aplicaciones, alguien podría darme una introducción acerca de esto?
Gracias :) |
Hola, vengo a dejarles la solución que aplique para este problema, por si a alguien más en un futuro le sirve.
Básicamente, lo que hace este código es buscar en donde se encuentran los temas/skins el registro del último skin aplicado a la aplicación, lo jala y lo aplica.
|
Cita:
|
Buenas xangiesaurx,
hipoteticamente que pasaria si tienes dos aplicaciones que usan skins? siempre que cambien en una aplicacion te cambia el skin en las dos no? |
Cita:
|
La franja horaria es GMT +2. Ahora son las 02:55:25. |
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