Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cambiando el Color de la Barra Selectora del DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=55598)

enecumene 21-04-2008 21:16:31

Cambiando el Color de la Barra Selectora del DBGrid
 
Saludos Compañeros, regreso con esta pequeña duda, estoy tratando de cambiar el color de la barra selectora del DBGrid (¿Quién no está harto de ese azul?), hasta ahora he logrado hacer este código:

Código Delphi [-]
procedure TForm1.DBGrilla1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if (state = [gdSelected]) then
    with TDBGrilla(Sender), Canvas do
    begin
      Brush.Color := clBtnFace;
      Font.Color := clNone;
      FillRect(Rect);
      DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;
end;

Problema: Me funciona bien, sólo que la primera columna o campo mantiene el color azul y los demás campos el color cambia, qué podría estar haciendo mal? ya le he dado mucha vuelta y se me han acabado las ideas, a ver si alguno me hecha una mano.

Saludos.

BlueSteel 21-04-2008 21:23:01

Hola enecumene

Yo utilizo el componente TJvDBGrid de la JVC.. y ese te permite cambiar el color de la barra selectora...

Salu2:p:D

Edito; sorry.. me confundí... uso ese componente pero no me deja cambiar color... el que me deja cambiar color es el NiceGrid... sorry.. nuevamente...

enecumene 21-04-2008 21:27:58

Cita:

Empezado por BlueSteel (Mensaje 281552)
Hola enecumene

Yo utilizo el componente TJvDBGrid de la JVC.. y ese te permite cambiar el color de la barra selectora...

Salu2:p:D

Gracias por tu pronta respuesta BlueSteel, mira, yo tengo ese componente, pero no encuentro una propiedad que cambie el color de la barra selectora, lo que si se puede es alternar los colores entre filas, pero no la barra selectora si no es ninguna molestia me podrias indicar su ubicación?.

Saludos.

BlueSteel 21-04-2008 21:35:44

Cita:

Empezado por enecumene (Mensaje 281556)
Gracias por tu pronta respuesta BlueSteel, mira, yo tengo ese componente, pero no encuentro una propiedad que cambie el color de la barra selectora, lo que si se puede es alternar los colores entre filas, pero no la barra selectora si no es ninguna molestia me podrias indicar su ubicación?.

Saludos.


Sorry.. pero despues edite el mensaje... me habia equivocado de componente es que uso ese y tambien el NiceGrid... y en este último es donde se puede cambiar el color de selección...

Salu2.. y sorry de nuevo

enecumene 21-04-2008 21:40:13

Cita:

Empezado por BlueSteel (Mensaje 281558)
Sorry.. pero despues edite el mensaje... me habia equivocado de componente es que uso ese y tambien el NiceGrid... y en este último es donde se puede cambiar el color de selección...

Salu2.. y sorry de nuevo

Ja, Ja...No Pasa nada Amigo BlueSteel veré ese componente que dices, y de nuevo gracias.

Saludos.

gluglu 21-04-2008 23:24:02

Supongo que en tu caso particular, tienes puesto a False el campo RowSelect de la propiedad Options del DBGrid.

Entonces según tu código
Código Delphi [-]
if (state = [gdSelected]) ...
precisamente lo que estás haciendo es cambiar de color sólo la Celda (...y fila) que tiene selección en un momento determinado.

Sinceramente, no me he puesto a buscar la solución ya que yo utilizo siempre los DBGrid's con RowSelect a True.

Pero deberás de analizar si los campos que has de cambiar de color son de la fila que en ese momento está seleccionada, y cambiar su color según tus preferencias, no sólo a la celda que tiene la selección y por tanto el State a gdSelected.

Con el dgRowSelect a True basta con esto :

Código Delphi [-]
If (gdSelected in State) then DBGrid1.Canvas.Brush.Color := tuColor;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

Saludos ;)


La franja horaria es GMT +2. Ahora son las 19:05:55.

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