FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Bueno creo que ya tengo una primera alternativa...
Se trata de la mejora del código que ofrecí anteriormente. Solucionando sus problemas. Casimiro tendrá que revisar lots cambios hechos con respecto al programa que el subió hace unas horas. Aquí el archivo que he subido. Saludos, Chris |
#2
|
||||
|
||||
Este es el código:
Cada vez que se hace la consulta hay que reiniciar las variables globales (UltimoValor, GrupoImpar, BoolSwitch) de esta forma:
No es un código perfecto. Obviamente se puede obtimizar un poco, de hecho creo que deberían tomarlo tipo pseudocodigo. Pero en mis pruebas ha funcionado según los requerimientos que le entiendo a casimiro. Cualquier inconveniente, pues dejadlo saber. Saludos, Chris |
#3
|
||||
|
||||
Creo que no vale, el problema es que almacena en un string los números que ya ha presentado para saber con qué color presentarlo, para ello hay que recorrer desde el principio hasta el final todos los registros. Si por ejemplo vas directamente al último con ctrl+fin entonces no guarda esos valores y no puede pintarlos.
|
#4
|
||||
|
||||
No sé si sirva para esto, pero lo más parecido que he encontrado en Firebird para las variables de usuario de MySQL es RDB$SET_CONTEXT() y RDB$GET_CONTEXT().
Podrías probar a ver si funcionan similarmente. // Saludos |
#5
|
||||
|
||||
Cita:
|
#6
|
||||
|
||||
Cita:
|
#7
|
||||
|
||||
Cita:
Cita:
Nada, acaba alternando colores incorrectamente. |
#8
|
|||
|
|||
Amigo he implementado el codigo en ejemplo de Chris, y me anda de maravillas...
Te copio el codigo completo de la unidad.
Saludos cordiales |
#9
|
||||
|
||||
Cita:
Me sigue saliendo mal en el mismo sitio que antes : |
#10
|
||||
|
||||
ahora si.
con una tablita auxiliar, funciona, no se si te será practico o no. estoy convencido que la mosca la mate, ahora no se como te quedo la casa Saludos.
__________________
Aleca |
#11
|
||||
|
||||
Cita:
El evento DrawColumnCell existe porque en la práctica es casi imposible predecir cuales celdas han de dibujarse. Por ello es que considero que cualquier técnica que recurra a una suerte de "último valor" fallará tarde o temprano pues presupone un pintado secuencial de las filas, cosa que no siempre se dará de esa manera. // Saludos |
#12
|
|||||||||
|
|||||||||
Cita:
No tengo problemas en que se me critique mis ideas. No lo que no pienso tolerar en una persona es pretender acabar un buen debate y discusión exponiendo púlblicamente la frase "¡Y punto!" o similar. Al decirlo ya pretendiste dar por acabado todo intento de negociar o de analizar otras perspectivas. Y voy a seguir insistiendo... punto final no se vale ganar... yo también puedo ser muy infantil y bien gallego. Y si te quiero llamar la atención lo voy a hacer a mi estilo cómico, y de mal humor... ¿A poco te no agrada NewDelphius? Ba... pensé que lo extrañaban por aquí. [quote=Chris;386915] No critique a cada una de las personas que propuso una solución, hay muchas soluciones propuestas si te fijas en todo el hilo. Critiqué, no solo la solución propuesta por Roman y desarrollada por tí, sino todas las que usen de muleta a la base de datos. [quote] A veces nos vemos obligados a emplear esas muletas Cris... entiende eso de una vez. El que se hace UNA VEZ en todo el sistema no es un gran pecado... ¡entendelo! abrí un poco la cabeza. Si prestaras atención te darás cuenta que inicialmente yo le estaba dando vueltas por el lado cliente. Y luego viendo como se estaba dando el hilo y aprovechando una SUGERENCIA de roman es que me tomé la buena volutad de seguir por ese lado y ver que más hay. Soy yo y otros usuarios quienes impulsados por traer nuevas visiones, propuestas y alternativas no nos queremos quedar en un sólo lado. Y disculpa que lo diga pero no por utilizar esas "salidas fáciles" nos hace ser muletas. Actitudes cerradas la podemos tener todos, aunque reconozco que no eres la persona más cerrada... mi padre te lleva mucha ventaja. Ojalá Cris no te vea por aquí tratando de darle un giro a tus ideas y desafiar tu postura... sería un duro golpe darle un repaso al archivo de tus palabras. Te aviso que el tiempo es un buen maestro de que nuestras visiones pueden (y van) a cambiar. Yo soy bastante crítico, pero al menos dejo un espacio a la posibilidad de un arreglo y de ser un poco más abierto o de darle una posibilidad de que me cautive y se defienda. Tu por parte cerraste las puertas ni bien al comienzo de haber dado la propuesta a Casimiro. Cita:
Lee tu frase por favor: Cita:
Ese es el mensaje que transmite tus palabras... Deberías saber que significa llamar a alguien de/usar muletas: rengo, mula, tonto. Obstinado, tosco, grosero. Llamaste de muletas a Casi, Roman, a mi, y a fjcg02 cuando empezamos a darle una nueva posibilidad. Nos tiraste y sentenciaste en la cara con tu punto final. Eso no lo voy a permitir. Yo si he sido muleta en la forma de dirigirme hacia tí, pero no en el hilo al probar otras alternativas. Cita:
Eso no es apropiado Cris. El vino porque tiene un problema, de no tenerlo no hubiera dicho nada. Tu estuviste de más al meter la muleta. Ojalá no te veas envuelto en una. Cita:
De que se, se... algo se. Muchísimo no... poco... no sabría decirlo. Pero no puedo ni me atrevería de llamar muletas a otro. Cita:
Repito que eres tu el que ha sido intolerante: no toleraste la nueva propuesta que se estaba analizando... repito de nuevo: tu sentenciaste... tu dictaste... tu quisiste poner punto final. A todo eso yo es que le quiero poner punto final. Cita:
Se te indicó que había una serie de problemas y tu le seguías dando... eres tu el que se ha sido insistente. No supiste ver que había algo más que se tenía en cuenta... Y la propuesta KISS de por el lado de la base de datos si bien puede que no sea lo más adecuado al menos podría traer algo de equilibrio y permitiría salir de prisas. Luego, podría destinar tiempo, para una siguiente versión, o mejora al sistema analizarlo con otras perspectivas. Cita:
Si no hay nada que dejar por sentado... entonces creo yo que te deberías comer esas palabras: diste por sentado, sentenciaste de que habrá problemas de perfomance con el SP. ¿Tienes los suficientes elementos como para afirmar con total certeza de que el SP le será muy lento, que sus usuarios se quejarán? Deja eso a Casi... tu que quedaste sentado, encerrado en la idea del cliente, en verlo por el lado del swich booleano, de compararlo con una variable "anterior". Pero te viste muy "lerdo" al no captar de que la solución que tu proponías no estaba correcta. Me alegra de que insistieras en tus ideas, de que buscaras mejorar tu código pero te veníamos diciendo de una u otra forma que hacía falta algo más. TU diste por sentado algunas cosas... Cita:
A mi no me afecta en lo más mínimo... yo más que nada te lo señalo para que en lo sucesivo sea más cuidadoso cuando pretendas callar a alguien diciéndole "Punto". Las palabras te van a rebotar, yo no le voy a seguir dando al debate... No tiene sentido discutir más.... Ya te dije lo que te debía decir, pero te digo que pueden venir otros a decirte que ese "Punto" estuvo de más. Si no te lo dijeron los demás, no quiere decir que se pueda pasar. Yo al menos no lo iba dejar pasar... Porque al tema lo veníamos tratando bien. Si tu lo querías cerrar, consideré bueno hacerte llamar la atención de que el tema todavía estaba abierto. Te aviso Cris que no es la primera vez que veo en ti la idea de dar esas estocadas finales.... y no es la primera vez tampoco que intentas pasar de "fino" una indirecta como muletas. En ese entonces no me ví en esos hilos... pero a esta no la dejo pasar. Saludos, PD: Disculpen que metiera dervirtuadas al hilo. |
#13
|
||||
|
||||
Cita:
Y el @ es para simbolizar y declarar una variable.... al igual que en MS SQL Server. |
#14
|
||||
|
||||
La idea de tener una Lista, a modo de campo ficticio como el campo "Colorear" o la idea de un campo en el DBGrid y que no se muestre para que almacena un número identificador del color debería funcionar.
A como veo, es necesario tener una lista o una estructura, o algo por el estilo, que lleve la referencia sobre el color al pintar. No basta con aplicar técnica de comparación con valores anteriores, o siguientes... hay que verlo globalmente: como un conjunto de registros. Supuestamente, de ese modo en el evento OnDrawColumnCell se podría consultar dicho valor con algo como Lista[DBGrid.RecNo] y si es 0,1,2 o lo que fuese pintar de un color a otro. En teoría por más que se dezplazara por los registros, al consultar el RecNo (sabiendo que en la lista estarán todos los registros devueltos por la consulta) se debería poder recuperar el valor correcto y pintar de forma inequívoca la fila. Es fundamental que exista un proceso que se encargue de analizar el conjunto de datos previamente y llenar la lista con los valores adecuados. Una vez hecho esto recién ya es posible pintar. Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Alternar dos colores en las lineas de un DBGrid. | jealousy | OOP | 4 | 07-05-2014 15:45:23 |
colores en un dbgrid | frf_84 | Gráficos | 2 | 07-12-2004 12:14:57 |
dbgrid con colores | Giniromero | Conexión con bases de datos | 7 | 08-07-2004 16:26:29 |
dbgrid en colores | sebas | Conexión con bases de datos | 2 | 09-07-2003 09:16:14 |
Colores en una DBGrid | REDCOM | Varios | 2 | 26-05-2003 20:42:58 |
|