Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-07-2013
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Distinguir registros no consecutivos para alternar colores en dbgrid.

Que tal Colegas.

hace tiempo ando dando vueltas con el tema de Colorear de forma alternada de un dbgrid.

lo he hecho de maravilla manejando el evento DrawColumnCell

Pero el tema del post radica en que todos los métodos que he visto utilizan el RecordNumber, y dependiendo si este es par o impar colorea la fila correspondiente.
Eso funciona si los numeros de registros son consecutivos. las tablas tienen que ser secuenciales exactas para que funciona. Y hablando de sistemas que funcionen del lado del cliente eso torna muy lenta una aplicación de muchos registros.

A alguien se le ocurre una forma que no sea utilizar tecnologia cliente/servidor? y habilitar desde el lado del servidor la secuencialidad de la tabla.

Saludos y veremos que sale de aquí.
Responder Con Cita
  #2  
Antiguo 01-08-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por amadis Ver Mensaje
Pero el tema del post radica en que todos los métodos que he visto utilizan el RecordNumber, y dependiendo si este es par o impar colorea la fila correspondiente. Eso funciona si los numeros de registros son consecutivos. las tablas tienen que ser secuenciales exactas para que funciona.
Lo normal de controlar si el registro actual es par o impar, además de cómodo, es muy eficiente. Y precisamente se hace el local con los registros devueltos.
O sea, que es eso precisamente lo que necesitas.
Responder Con Cita
  #3  
Antiguo 01-08-2013
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Eso es lo que vengo haciendo y quiero evitar. Traté de dejarlo en claro antes.

No quiero usar la propiedad Row del Tstringrid que hace referencia al valor del la propiedad DataSet.RecNo.
Y todo esto genera problemas cuando se tienen consecutivos varios registros pares o impares.
Esa es una de las cuestiones por la que generé este post.
Responder Con Cita
  #4  
Antiguo 01-08-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Pero cómo lo quieres hacer?
Responder Con Cita
  #5  
Antiguo 01-08-2013
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Nose , busco alguna idea aunque sea descabellada para probar algo nuevo. Como vos bien decias, lo normal es tomar el numero de registro y comparar. Pero a nadie se le ocurrió plantearse ¿que pasa si por ej se eliminan algunos registros y quedan consecutivos pares o impares??.
Algo se debe poder hacer.
Responder Con Cita
  #6  
Antiguo 01-08-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por amadis Ver Mensaje
Nose , busco alguna idea aunque sea descabellada para probar algo nuevo. Como vos bien decias, lo normal es tomar el numero de registro y comparar. Pero a nadie se le ocurrió plantearse ¿que pasa si por ej se eliminan algunos registros y quedan consecutivos pares o impares??.
Algo se debe poder hacer.
Hola amadis.

Código Delphi [-]
type
  TDBGridEx = class(TDBGrid);

procedure TForm1.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
  COLORS : array[Boolean] of TColor = (clYellow, clMoneyGreen);
begin
  with TDBGridEx(Sender as TDBGrid) do
  begin
    Canvas.Brush.Color := COLORS[Odd(Rect.Top div DefaultRowHeight)];
    DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 01-08-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por amadis Ver Mensaje
Nose , busco alguna idea aunque sea descabellada para probar algo nuevo. Como vos bien decias, lo normal es tomar el numero de registro y comparar. Pero a nadie se le ocurrió plantearse ¿que pasa si por ej se eliminan algunos registros y quedan consecutivos pares o impares??.
Algo se debe poder hacer.
Todo eso está controlado con la "forma normal de hacerlo"
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
Alternar colores en dbgrid Casimiro Notevi Varios 133 16-03-2017 16:59:54
Alternar dos colores en las lineas de un DBGrid. jealousy OOP 4 07-05-2014 15:45:23
Colores a un DBGrid cmm07 Varios 5 03-03-2012 00:27:13
Metodo Ideal para Modificar un valor a todos los Registros mostrados en un DBGrid Alexis De la Cr MySQL 7 09-04-2008 14:00:00
dbgrid con colores Giniromero Conexión con bases de datos 7 08-07-2004 16:26:29


La franja horaria es GMT +2. Ahora son las 05:15:17.


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