FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
Casimiro, si me permites mi opinión, por que no usasun sistema de control por asientos, asignando al último digito del asiento, en el grid en el envento OnDrawColumCell... (no recuerdo el nombre exacto), como digo según sea este último digito, se rellene la fila de un color, lo cual te permite 10 colores diferentes del grid, ya sería mucha casualidad, dos asientos con la misma terminación para que sea el mismo color, y a unque esto ocurriese, podrias usar una variable local de 0 a 9, y cada vez que cambiaz de valor el asiento, cambias este valor y asignas color a la fila.
Espero se entienda mi idea.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#22
|
||||
|
||||
ATHLETIC DE BILBAO 1 - BARCELONA 0
El ATHLETIC a octavos de final en la copa !!
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#23
|
||||
|
||||
Creo que el problema viene que, cuando pintamos la primera columna y preguntamos si el dato cambia, cambiamos el color (correcto); pero no podemos cambiar la variable que controla dicho cambio, porque entonces, el resto de las columnas volverían a cambiar.
He probado con esto y me ha funcionado:
Prueba a ver si te vale Un saludo Última edición por ElKurgan fecha: 05-01-2011 a las 09:54:37. |
#24
|
||||
|
||||
le estuve dando un poco de vuelta al asunto y se armas un campo calculado que lleve el color en que se va a pintar (0-blanco, 1-Verde) y pintas de acuerdo al valor de ese campo.
ahora me lo mantiene estable. Saludos
__________________
Aleca |
#25
|
||||
|
||||
umm lo segui revisando y en algun momento lo cambia
__________________
Aleca |
#27
|
||||
|
||||
Cita:
Saludos PD: Cuando Casi vea el revuelo que ha formado igual le da un patatús.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#28
|
||||
|
||||
jajaja... bueeenooo... ¡¡¡ vaya jaleo !!!
Muchísimas gracias a todos Y sí, me piden que esté ordenado por fecha y luego por asiento/apunte, pero como cada asiento son varios apuntes... No sé, el tema no parece muy complicado, al contrario, pero sin embargo se está complicando. El asunto es que cada asiento son varios registros (apuntes) y cuando hay un número impar de asientos (y en otros casos que no he detectado el motivo) al terminar de pintar el último se queda con el color igual al primer registro, entonces al posicionarse en el primero e intentar mover el cursor a otro... lo pinta del color que no le corresponde. Se hace el select y pinta el dbgrid: asiento 1 apunte 1 azul asiento 1 apunte 2 azul asiento 1 apunte 3 azul asiento 2 apunte 1 rojo asiento 2 apunte 2 rojo asiento 3 apunte 1 azul asiento 3 apunte 2 azul <-- en memoria queda último color usado: azul Entonces se posiciona en el primer registro, y si muevo el cursor al siguiente, por ejemplo, al estar en azul... lo pinta e rojo. Alterna los colores. Cuando el número de asientos es par entonces no hay problema asiento 1 apunte 1 azul asiento 1 apunte 2 azul asiento 1 apunte 3 azul asiento 2 apunte 1 rojo asiento 2 apunte 2 rojo asiento 3 apunte 1 azul asiento 3 apunte 2 azul asiento 4 apunte 1 rojo asiento 4 apunte 2 rojo <-- en memoria queda último color usado: rojo Al posicionarse en el primero y movernos, cambia rojo por azul, que es el color correcto. En fin, que voy a hacerlo de otra forma, ya habéis dado pistas sobre eso, un campo calculado que vaya anotando cada vez que cambia de asiento y listo, luego se pinta del color según ese campo, (true/false ó 0/1). O cargarlo en un clientdataset o tabla en memoria y hacer lo mismo. Y de nuevo muchísimas gracias a todos Si se os ocurre una forma "normal" y que funcione... avisáis |
#29
|
||||
|
||||
Pues no se, a mi me funciona lo que he probado. Creía que bastaría con adaptarlo un poco a tu programa y ya está
En fin, mi gozo en un pozo Saludos |
#30
|
||||
|
||||
Espera, que todavía no lo he probado todo, déjame un poquito de tiempo
|
#31
|
||||
|
||||
Hola.
Dudo de su aplicabilidad... pero brinda un 'arco iris' de posibilidades...
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#32
|
||||
|
||||
Creo que la solución sería:
Nota: Según la ayuda de Delphi 6: Cita:
Última edición por duilioisola fecha: 05-01-2011 a las 17:28:18. |
#33
|
||||
|
||||
Cita:
__________________
http://www.gestionportable.com |
#34
|
||||
|
||||
Al final he hecho lo siguiente:
El único problema es que la última parte donde asigno al campo sombra un valor, la pasa por alto y siempre es 0. He probado con AutoCalcFields en False y en True, con el mismo resultado. Puede ser porque estoy probando con unos componentes que descienden de FreeIB. Si alguien lo puede probar con otros componentes DataSets que informe si le funciona. |
#35
|
||||
|
||||
Casimiro te pongo unas imágenes de lo que te comentaba anteriormente
Ten en cuenta que usado colores a lo loco, deberías usar, un color y derivar luego de este cambiado sólo uno de los valores de la rgb para que fueran tonalidades mas consecutivas. La parte del código que creo te puede interesar es esta
Como puedes comprobar use mi BD de pruebas y el Campo por el que hago la comprobación es LOTE, en tu caso sería ASIENTO
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" Última edición por José Luis Garcí fecha: 05-01-2011 a las 18:48:33. |
#36
|
||||
|
||||
Bueno siento ser pesado, pero con unos pequeños cambios os muestro lo que digo.
Código Cambiado
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#37
|
||||
|
||||
mmm... comparto la opinión de casimiro, las soluciones presentadas son como cañonazos.
Por mi parte creo que este problema necesita nada más que una especie de switch, o alternador. Una simple variable booleana que controle el color utilizado.
BoolSwitch y UltimoValor son variables privadas del formulario. Creo que con este código se pudiera solucionar el problema. Sino pues creo que de él se puede partir. Saludos, Chris Última edición por Chris fecha: 05-01-2011 a las 19:40:16. |
#38
|
||||
|
||||
Estoy siguiendo este hilo con interés. En algún momento voy a verme en la tesitura de implantar algo similar. Y creo que el principal problema no es "pintar" las filas cuando se "cargan" los datos. Eso, con los sistemas de switch que se van comentando es fácil. Yo creo que el principal problema es la navegación, el hacer click en cualquier sitio. Creo que si en el registro de la tabla no hay una información que nos indique si hay que pintar esa celda de un color o de otro, los valores del "switch" no van a ser válidos. Mi opinión en que "debe haber una información en el registro que indique de color hay que pintar esa celda".
Saludos,
__________________
http://www.gestionportable.com |
#39
|
||||
|
||||
Cita:
Así que creo que la única opción es la del campo que indique el color o algo así. Pero todavía se aceptan más propuestas... habrá premio al que obtenga el resultado correcto |
#40
|
||||
|
||||
Pues yo no veo otra salida amigo. Ya sea que se lleve una estructura fuera o en el mismo dbgrid con un campo calculado y el uso de técnicas "flags booleanas" es necesario contar con un artilugio para llevar ese conteo y poder determinar con que color pintar cada registro.
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 |
|