PDA

Ver la Versión Completa : Cambiar estilo a mi programa


strelok
26-02-2018, 17:57:41
Hola,

estoy intentando cambiar el estilo del programa a "carbon", el único inconveniente es que quiero un botón extra, uno que sea de "ayuda".
He visto que existe un diseñador "Bitmap styler designer" ¿alguien lo ha usado? ¿cómo agrego un botón extra?

Casimiro Notevi
26-02-2018, 20:41:28
¿Un botón extra dónde, cómo?

AgustinOrtu
26-02-2018, 23:04:05
Si adivine bien, lo que queres es que el usuario, pulsando un boton, pueda cambiar el estilo del programa.

Basicamente, lo que necesitas hacer es enumerar los diferentes estilos que tu aplicacion provee, y aplicar el estilo seleccionado por el usuario.

Esta (https://stackoverflow.com/questions/15939310/how-do-we-detect-and-change-styles-at-runtime) solucion muy sencilla, utilizando un componente TComboBox. Al seleccionar un elemento del combo, se cambia automaticamente el estilo del programa

Esta (https://theroadtodelphi.com/2014/08/22/a-new-way-to-select-and-apply-a-vcl-style-in-runtime/) es una variante que pone la lista desplegable de estilos en el menu del sistema

strelok
27-02-2018, 12:47:33
Exactamente, he trabajado diseñando una funcionalidad que cambie los componentes de TMS y ya está terminada, sin embargo, nos gustaría cambiar las barras de scroll, entre otros componentes que mi funcionalidad no puede cambiar.
Vi que delphi permite cambiar sus estilos (para componentes genéricos) y quiero usarla con mi funcionalidad, con el objetivo de pintar tanto los componentes genéricos como los de TMS, sin embargo, lo que quiero es arriba aparezcan los siguientes botones: ayuda, minimizar, maximizar y cerrar, por defecto solo aparecen los últimos 3, quiero usar el diseñador de estilos para que de alguna forma me aparezcan los 4 botones antes mencionado ¿me ayudan a usar el editor?

AgustinOrtu
27-02-2018, 13:02:46
El diseñador de estilos no tiene nada que ver. Eso es para definir colores, formas,etc de los controles. Si querés un botón, agregas un botón y listo

strelok
27-02-2018, 13:14:29
Nosotros actualmente tenemos una barra de herramientas personalizada, con los 4 botones que queremos, pero al cambiar de estilo (Ejemplo: Carbón), aparecen 2 barras, la del estilo y la nuestra.
Necesitamos ocultar una, en caso de poder agregar el botón de ayuda, podríamos ocultar la nuestra, en caso contrario, nos gustaría ocultar la del estilo asignado ¿es esto posible? voy a subir una captura de pantalla en breve

https://image.ibb.co/gGZMtH/barras_dobles.png (https://imgbb.com/)

1 - La barra que aparece cuando asignamos cualquier estilo.
2 - La barra personalizada creada por nosotros que tiene los 4 botones que necesitamos.

Lo ideal sería utilizar el estilo para que pinte componentes genéricos, pero ocultar su barra, en otras palabras, ocultar la (1). ¿Es esto posible?

Gracias por tus respuestas.

ElDioni
27-02-2018, 14:17:45
Hola,

¿has probado a cambiar lo propiedad BorderStyle de vuestro formulario a BsNone?, eso debería eliminar la barra superior y dejar solo la vuestra.

saludos.

strelok
27-02-2018, 17:44:43
Hola,

¿has probado a cambiar lo propiedad BorderStyle de vuestro formulario a BsNone?, eso debería eliminar la barra superior y dejar solo la vuestra.

saludos.

Así está actualmente, por lo que siempre funcionó mientras tenía el "estilo" windows (por defecto), pero al usar un "estilo" que no sea windows, se ven las 2 barras

AgustinOrtu
27-02-2018, 20:03:55
La verdad no tengo una solucion directa para tu problema. Seguramente jugando con la API de Windows se pueda lograr lo que necesites

Lo mas cercano que vi a lo que propones es usando esto (https://github.com/RRUZ/vcl-styles-utils/wiki/VclStylesNC). Al parecer te permite poner controles en la parte de la barra de un formulario (en el titulo, vamos). En el enlace hay imagenes. Aunque nunca lo he usado y no tengo una opinion formada al respecto. Si te puedo decir que el trabajo del autor con respecto a los Vcl Styles es de una calidad inmensa, de hecho, parte de su trabajo fue incluido oficialmente en Delphi, ya que solucionaba unos problemas muy importantes

Con la segunda solucion, lo que harias es tener una unica barra, la que te da Windows, pero le agregas los botones personalizados que necesitas. Y esto seguro de que, de ser necesario, pueden ocultarse/mostrarse dinamicamente

ElDioni
28-02-2018, 12:30:51
Supongo que ocurrirá lo mismo si utilizas el código del truco siguiente:

http://clubdelphi.com/foros/showthread.php?t=80887&highlight=formulario

que es para dar forma a los formularios, porque creo que también lo hace a partir de poner la propiedad BorderStyle a BsNone, de todas formas échale un vistazo.

Saludos.

MacStreet
01-03-2018, 22:20:43
usas estos componentes : Vcl.Themes,Vcl.Styles;


y si lo deseas cambiar desde un boton usas esto :


procedure TForm1.Button2Click(Sender: TObject);
begin
TStyleManager.TrySetStyle('Luna'); // Aca pones el nombre de tu skin , por defecto le pusé "Luna"
end;

Saludos.
Revenge -