Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 31-07-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

Creo que tu problemas lo puedes resolver utilizando una "lista" donde guardes el número de fila ó en mi caso guardo el "ID" de la fila que se va dibujar de un color DETERMINADO al hacer click, ya que dicho ID es único en toda la tabla.
Bueno.. lo que debes hacer es utilizar el evento OnCellClick del DBGrid y adicionar la fila(en mi caso como ya he mencionado antes,añado el ID de la Fila que está en la primer columna del DBGrid) que tenemos actualmente seleccionada a nuestra "lista" mas o menos así:
Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var ID:String;
begin
     ID:=DBGrid1.Fields[0].AsString;//Obtengo el ID de la fila actual
    if lista.IndexOf(ID)=-1 then // si no lo tengo en mi lista
       lista.Add(ID);//lo agrego
end;
De esa manera cada ves que hagas click en alguna fila, pues se guardará en nuestra lista para que al repintar y/o dibujar las celdas del DBGrid aparescan con algun color que querramos. Para lograr ésto es necesario además hacer uso del evento OnDrawColumnCell del DBGrid y poner un código como éste:
Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);

Var ID:String;
begin
   ID:=Column.Field.DataSet.Fields[0].AsString; //obtengo el campo ID de la fila actual
    if lista.IndexOf(ID)>-1 then// si dicho ID lo tengo en mi lista
     begin
     //Procedo a pintar la fila con el color deseado
     (Sender as TDBGrid).Canvas.Brush.Color:=clGreen;//aqui lo hago con el color de fondo
     (Sender as TDBGrid).Canvas.Font.Color:=clBlack;// aqui lo hago con el color de la fuente
     (Sender as TDBGrid).DefaultDrawColumnCell(Rect,DataCol,Column,State);//procedo al dibujado
     end;
end;
Por supuesto que no hay que olvidarse de crear(intanciar) a nuestra lista, que en éste caso uso un objeto TStringList , lo puedes hacer en el evento OnCreate del formualrio:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
 Lista:=TStringList.Create;//Creo mi lista que contendrá la lista de Filas que se van a dibujar con un color determinado
end;
Tampoco hay que olvidarse de destruirlo, lo podemos hacer en el evento OnDestroy tambien del formulario:
Código Delphi [-]
procedure TForm1.FormDestroy(Sender: TObject);
begin
Lista.Free;
end;
Con eso creo que cada vez que hagas click el alguna fila(o celda) del DBGrid, ésta se pintará del color que quieras, en mi caso estoy usando un color verde (clGreen).
Espero te sea de utilidad...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
 


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
Como cambiar el color de una fila del Grid de ibobjects kovaski Firebird e Interbase 8 14-10-2006 16:36:06
Como pintar la fila de un DBGrid Gustavo Gowdak OOP 2 04-05-2006 21:34:04
Pintar Fila del DBGrid Palmiro Conexión con bases de datos 2 05-04-2006 23:25:51
Como Borra exclusivamente una fila en un String Grid mgaray Varios 1 14-03-2005 22:06:57
Pintar Fila por medio en ub DBGrid josem OOP 3 01-01-2005 20:54:52


La franja horaria es GMT +2. Ahora son las 20:56:29.


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