Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-02-2009
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: Jan 2009
Ubicación: Cuba - La Habana
Posts: 226
Poder: 10
fide_uci Va por buen camino
Cool Cambiar el color de un panel de TStatusBar

Hola. Esa es la interrogante que tengo. Lo que sucede es que necesito cambiar el color de un panel de un TStaturBar, pero lo que sucede es que este componente, o mas especificamente los paneles que se crean mediante el mismo, no tienen la propiedad Color. Entonces ¿Cómo podría yo cambiar el Color de un panel dentro de un TStatusBar?.

Gracias a las personas que me puedan ayudar, y a las que no tambien, por entrar al Post.
Responder Con Cita
  #2  
Antiguo 03-02-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: Jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 17
Caro Va por buen camino
Hola fide_uci, para cambiar los colores de los panels de tu StatusBar tienes que utilizar el evento OnDrawPanel y colocar la propiedad Style de tus panels en psOwnerDraw, este codigo tendría que estar en ese evento:

Pinta el primer panel de amarillo
Código Delphi [-]
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
begin
 if Panel=StatusBar1.Panels[0] then
  Statusbar.Canvas.Brush.Color:= clYellow
 else
  Statusbar.Canvas.Brush.Color:= clRed;
 
 Statusbar.Canvas.FillRect(Rect);
 Statusbar.Canvas.TextRect(Rect, Rect.Left, Rect.Top, Panel.Text);
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 03-02-2009
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: Jan 2009
Ubicación: Cuba - La Habana
Posts: 226
Poder: 10
fide_uci Va por buen camino
Colores de TPanels

Muchisimas gracias Caro. La verdad es que el problema me ha quedado totalmente solucionado, y justo de la forma en que me hacía falta. De nuevo gracias.

Ahora una cosa. Al inicio estaba intentando poner el Style de los panels a psOwnerDraw como tu me dijiste, pero lo estaba intentando hacer en el evento "StatusBarDrawPanel", y entonces no me queria trabajar. En cambio cuando modifique la propiedad en el OnCreate del Form, todo corrio de maravillas.

Lo que hice fue algo asi!
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  X: Integer;
begin

  for X := 0 to StatusBar1.Panels.Count -1 do
    StatusBar1.Panels.Items[X].Style := psOwnerDraw;

end;
Responder Con Cita
  #4  
Antiguo 03-02-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: Jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 17
Caro Va por buen camino
Cita:
Empezado por fide_uci Ver Mensaje
Ahora una cosa. Al inicio estaba intentando poner el Style de los panels a psOwnerDraw como tu me dijiste, pero lo estaba intentando hacer en el evento "StatusBarDrawPanel", y entonces no me queria trabajar. En cambio cuando modifique la propiedad en el OnCreate del Form, todo corrio de maravillas.

Lo que hice fue algo asi!

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
X: Integer;
begin

for X := 0 to StatusBar1.Panels.Count -1 do
StatusBar1.Panels.Items[X].Style := psOwnerDraw;

end;


Hola de nuevo, la propiedad Style debe estar en psOwnerDraw antes de entrar al evento OnDrawPanel es por eso que no te funcionaba, esta bien que lo pongas en el OnCreate como lo estas haciendo pero podrías ahorrarte esas líneas de codigo y ponerlo directamente en diseño, haces doble click sobre el statusBar te aparecera la lista de los panels que tienes miras sus propiedades, buscas Style a cada panel en esa propiedad lo cambias a psOwnerDraw ya que esta por defecto con psText.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 03-02-2009
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: Jan 2009
Ubicación: Cuba - La Habana
Posts: 226
Poder: 10
fide_uci Va por buen camino
Si ya me he dado cuenta de eso, de que debe de ser antes de que entre al evento. Pero bueno, lo que sucede es que el usuario debe de decidir si usar los colores o no, entiendes?
Es por ello que no he configurado manualmente estas propiedades.
Muchas gracias por la ayuda!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 color de letras de acuerdo al color de fondo Adrian Murua OOP 2 15-11-2008 18:36:21
Duda. Cambiar Color del Panel con Xpmanifest ekstase Gráficos 2 07-04-2008 05:22:38
Mantener color verde olivo de las ventanas, al cambiar el color en windows mancurnino Varios 6 11-03-2008 15:39:47
Cambiar color en panel de DBCtrlGrid segun valor de un atributo akinom38 Varios 4 23-01-2006 14:25:30
Panel color blanco xxxFALKORxxx Varios 2 27-05-2005 18:26:37


La franja horaria es GMT +2. Ahora son las 15:21:47.


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