Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambio color al PageControl (https://www.clubdelphi.com/foros/showthread.php?t=38604)

Ricardo Alfredo 20-12-2006 16:15:10

Cambio color al PageControl
 
Tengo el siguiente problemilla.

Sucede que los form de mi aplicación pueden cambiar de color según el gusto del usuario, por defecto tienen el típico color plomo cuando son creados y también su objetos contenidos en estos.
Bueno cuando el usuario cambia de color estos quedan guardados para cuando vuelve ha ingresar al mismo form en otra oportunidad tomo el color que el dejo, en esto no he tenido ningún problema , pero hay form con contienen un pagecontrol el cual también toma el color que el usuario dejo o coloca, sin embargo el pagecontrol no toma por completo el nuevo color, dejando en plomo el espacio que queda a la altura de las TabSheet sin poder yo cambiar ese color.
Esa es la preguntilla ¿Como puedo cambiar en tiempo de ejecución el color del PageControl a la altura de la TabSheet al extremo derecho ?
Lo que si me fije fue que cuando por ejemplo efectuó la siguiente acción
1.- Abro el form con el PageControl
2.- Abro otro form cualquiera
3.- Cierro el form recién abierto
4.- Arte de magia el pagecontrol ahora si esta pintado completamente con el color que corresponde

He intentado hacer lo siguiente, en el evento del form OnPaint he puesto
MyForm.Repaint, también MyForm.Update y con ninguno de los dos he logrado hacer que el pagecontrol se pinte completamente del nuevo color.


Cualquier ayuda gracias

Bicho 20-12-2006 16:37:38

Hola, al final de esta página tienes varios links a hilos en los que ya se ha hablado del tema como por ejemplo éste.

Espero te sirva.

Saludos

Ricardo Alfredo 20-12-2006 16:57:41

Gracias por responder, yo non tengo problemas con las tabsheet , de echo le coloco iconos y son de distintos font.

La pregunta va direccionada al color que queda al lador de las tabsheet (no las tabsheet) cuando tu en tiempo de ejecución le cambias el color al form completo

Gydba 20-12-2006 21:01:23

Buenas tardes,

Si, lo vi hace poco cuando quise "aclarar" el color gris de las ventanas y para sorpresa el contenedor del los tabs no percibía dicho cambio. Me temo que es una limitación del componente en si, pero de seguro en torry (o descendiendo el componente de Delphi y con un override del Paint) encontrarás soluciones. Por mi parte decidí dejar pasar el tema porque realmente no quedaba del todo mal visualmente con ese efecto.

Bicho 21-12-2006 10:41:45

Yo no se si lo he pillado o no. Pero el link que puse era para el contenedor de las pestañas (Page Control) no para las pestañas (tabsheets), con ese codigo cambian las pestañas y el contenedor.

Me lo podeis explicar mejor, porque no entiendo muy bien el problema. O si puedes colgar una imagen para verlo quizá pueda entenderlo. Lo siento estoy corto de "entendederas" hoy. :D

Saludos

kuan-yiu 21-12-2006 11:15:11

Cita:

Empezado por Ricardo Alfredo
Gracias por responder, yo non tengo problemas con las tabsheet , de echo le coloco iconos y son de distintos font.

La pregunta va direccionada al color que queda al lador de las tabsheet (no las tabsheet) cuando tu en tiempo de ejecución le cambias el color al form completo

Yo he sufrido el mismo problema y en su momento intenté de todo.
Creo que es un bug del componente, porque cuando minimizas el formulario y lo abres de nuevo el color aparece correctamente, ¿?

roman 24-12-2006 06:28:55

Cita:

Empezado por Bicho
O si puedes colgar una imagen para verlo quizá pueda entenderlo

Creo que se refieren a esto:

[img=http://img72.imageshack.us/img72/2962/rm001vu7.th.png]

De ser así, tal parece que puede arreglarse si luego de cambiar el color del formulario, mandan repintar el fondo del control:

Código Delphi [-]
PageControl1.Perform(WM_ERASEBKGND, PageControl1.Canvas.Handle, 0);

// Saludos

Ricardo Alfredo 26-12-2006 22:39:56

disculpen por no responder con anterioridad.

efectifamente roman me referia a lo que tu describes y la solucíon es perfecta:)

gracias


La franja horaria es GMT +2. Ahora son las 16:42:36.

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