Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-02-2018
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 8
strelok Va por buen camino
Red face Cambiar colores por defecto de windows

Buenas tardes chicos,

mi objetivo es personalizar los colores de todos los componentes de mi programa, el cual esta formado por un 90% de componentes de TMS y un 10% de genéricos.
De ese 90% puedo personalizar la gran mayoría, y de los genéricos son bastante primitivos los cambios que se pueden hacer.

También me gustaría poder personalizar las barras de scroll, entre otras cosas. La única forma que encontré es usar los estilos de delphi, pero me genera un millón de problemas (no quiero entrar en detalles sobre esto, no estoy interesado en solucionarlos), por lo que quiero preguntar lo siguiente ¿existe una forma de reemplazar los colores de windows por lo que yo quiera? independientemente de que se trate de una buena o mala practica me gustaría conocer alguna forma de hacerlo.

Cuando delphi nos permite seleccionar un estilo ¿internamente como hace para cambiar los colores?

Por favor, espero que me puedan ayudar

Edición: Por si no queda claro lo que deseo hacer. Delphi en algún momento llama a la API de Windows y pregunta por sus colores, yo quisiera intervenir y asignar los míos personalizados. Porque hay cosas que no puedo controlar actualmente, como por ejemplo el color de los hint, eso provoca problemas entre usuarios que difieran de S.O (Windows 7 o Windows 10), a estos últimos le sale la letra y fondo negro.

Última edición por strelok fecha: 27-02-2018 a las 19:58:55. Razón: detalles
Responder Con Cita
  #2  
Antiguo 27-02-2018
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 16
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Creo que Delphi en ningun momento utiliza la API de Windows para reemplazar colores. De hecho, los estilos son bitmap-based. Al parecer esta todo implementado en la Vcl (aunque no se si con simplemente descender de TControl o TWinControl alcanza para soportar estilos) y por eso los controles de TMS no se ven afectados. Ahora, creo que TMS ofrece una alternativa de estilos para sus controles.

Por otra parte, que otro problema te presentan los estilos de Delphi. Estoy al tanto de que haya muchos bugs. Probaste con Delphi Vcl Styles Utils?
Responder Con Cita
  #3  
Antiguo 28-02-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.586
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por strelok Ver Mensaje
..mi objetivo es personalizar los colores de todos los componentes de mi programa...
También me gustaría poder personalizar las barras de scroll, entre otras cosas.
Para eso están los estilos.

Cita:
Empezado por strelok Ver Mensaje
Cuando delphi nos permite seleccionar un estilo ¿internamente como hace para cambiar los colores?
Justamente al colocar un estilo, lo que hace Delphi es "no hacer caso a lo que le dice Windows" para colocar sus propios colores/imágenes (los que vienen del estilo). Así que básicamente lo que hace Delphi es interceptar el "PAINT" del componente que haría el sistema, para pintar con su código. De ahí que los estilos "ralentizen" la ejecución.

Cita:
Empezado por strelok Ver Mensaje
¿existe una forma de reemplazar los colores de windows por lo que yo quiera? independientemente de que se trate de una buena o mala practica me gustaría conocer alguna forma de hacerlo.
Creo que en este caso no se serviría, porque Delphi "no pregunta el color al sistema" para pintar, sino que le dice al sistema "que lo pinte él."


Cita:
Empezado por strelok Ver Mensaje
Delphi en algún momento llama a la API de Windows y pregunta por sus colores, yo quisiera intervenir y asignar los míos personalizados. Porque hay cosas que no puedo controlar actualmente, como por ejemplo el color de los hint, eso provoca problemas entre usuarios que difieran de S.O (Windows 7 o Windows 10), a estos últimos le sale la letra y fondo negro.
En este caso y siguiendo lo que te he comentado, lo que yo probaría sería a interceptar el "PAINT" de la clase THintWindow (http://docwiki.embarcadero.com/Libra...ls.THintWindow) para cambiar colores o "repintar" a tu gusto los Hints.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar la impresora por defecto en Rave fredo Trucos 1 05-09-2007 09:48:28
Cambiar impresora por defecto mediante código jdiazan Impresión 2 15-12-2004 19:16:23
Poder cambiar la impresora por defecto ciscu Impresión 3 21-05-2004 18:03:35
Como cambiar El directorio por defecto! Carlosguiland MySQL 1 10-05-2004 17:54:37
Cambiar nombre por defecto en componentes roman OOP 6 07-11-2003 23:45:13


La franja horaria es GMT +2. Ahora son las 19:53:23.


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
Copyright 1996-2007 Club Delphi