FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
iluminenme amigos
hola amigos de club delphi, necesito que me den algunas ideas la verdad es que soy bastante novato con delphi y solo he aprendido a crear consultas a bases de datos y ponerlas en dbgrid pero lo que necesito ahora es diferente
lo que pasa es que tengo el siguiente form http://img369.imageshack.us/my.php?image=formsi9.jpg como pueden ver es sobre una venta de un plato de comida, el problema que tengo es cuando una persona vende un plato, este puede ser devuelto por algunas razones se le puede cambair algun producto, o se le puede quitar algun producto ( con producto em refiero a ingredientes) muchas veces le pasa a la persona que vende que la gente le cambia las cosas por ejemplo piden pollo con papas y las papas las deciden cambiar por alguna ensalada me comprenden??? ok, la cosa es que yo quiero hacer que cuando la persona que vende y le devuelven para que cambie me gustaria hacer que el tipo haga doble click en uno de los productos de la grilla y esta cambie de color tengo el codigo para que cambie de color ese codigo me cambia de color una fila completa pero como ven la condicion es cuando en la columna cantidad una de las cantidades sea 0 lo hice asi para probar pero lei que este no se pinta hasta que se redibuje el dbgrid de nuevo (ojo la condicion la puse solo para probar) como le hago pa cuando le haga doble click en la grilla en uno de los productos este cambie de color??... eso si, si le hago doble click a Almejas cambie la fila de color, si le hago doble clik a otra mas cambie tambien de color me comprenden??? que se vayan pintando a medida que les vaya haciendo doble click, revise el foro con el buscador pero no encontre a lo mejor no busque bien se que no debe ser muy dificil pero no se que me pasa hoy no puedo pensar bien, denme una ayudita amigos no pido que me hagan todo uds solo una iluminada a lo mejor si me fumo un buen porro !! se los agradezco mucho Última edición por marcoszorrilla fecha: 16-09-2008 a las 20:13:59. |
#2
|
||||
|
||||
Eso siempre ayuda a inspirarse no quiere decir que despues lo puedas llevar al codigo, pero que inspira ... inspira
Llendo a tu problema, lo que podrias hacer es modificar de acuerdo al doble click un campo de ese fila, por ejemplo que cambie de un valor 0 a 1 e inversamente. Luego pintas de otro color todos las filas que tengan en ese campo el valor 1. Ahora tendras que buscar otro problema para poder fumarte el porrito .
__________________
[Crandel] |
#3
|
|||
|
|||
jejejjeje si de que inspira inspira
con el codigo del drawcolumns tengo pa pintar la fila del dbgrid pero me falta la condicion del doble click debo decirle al programa algo asi como si el usuario hace doble click en uno de los productos de la grilla entonces colorea la fila entera pero no se como |
#4
|
||||
|
||||
OnCellClick tal vez pueda ayudarte... en realidad tu idea no parece tan complicada a simple vista, solo necesita un poco de codigo que tal vez lo haga en cierto modo, molesto
__________________
Web |
#5
|
||||
|
||||
Hola, el primer bloque de código que pongo acontinuación cambia a rojo el color de la fuente de acuerdo a ala condición que le pongas.
Para el segundo bloque necestitas agregar 2 TImage con los nombres MiFoto1 y MiFoto2 y colocar su propiedad visible a False, cargar en ellas imagenes propias para lo que necesites expresar. Al DBGrid deberás agregar una nueva columna (con el editor de columnas) dejando vacía la propiedad FieldName, lo que hará será dibujar las imágenes de las TImages en la nueva columna. Para los dos casos deberás interceptar el evento OnDrawColumnCell del DBGrid. Espero te sirvan de algo.
|
#6
|
||||
|
||||
Hola,
Oportuno ejemplo compañera Ana Maria, creo que es una de las explicaciones mas simples y prácticas con las que Memo6015 podrá adaptar a su necesidad; planteadas tambien en La Cara Oculta
__________________
Web |
#7
|
||||
|
||||
Hola, creo que el problema que tiene el amigo no es en el pintado ya que su codigo funciona sino en colocar la condición y que cuando se haga doble click sobre un registro del se pinte.
Como te dijo Crandel necesitas un campo que te haga de condición y que maneje los valores que necesitas, talvez sería bueno que aumentes un campo Estado donde 1 signifique activo y 0 No activo, los que tengas con 0 los pintas del color que quieras, ahora en el evento dobleClick del DbGrid tendrías que modificar el valor de 1 a 0 o de 0 a 1, una vez que se refresque nuevamente el DBGrid con los cambios que acabas de hacer se activara nuevamente el evento OnDrawColumnCell para hacer el repintado.
Y despues como ya te han indicado preguntarías por ese campo estado.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#8
|
|||
|
|||
genial, si ese es mi problema la condicion como lo puse el pintado lo hace la cosa es como decirle al programa que pinte cuando le haga doble click, programe ese evento y llamo al procedimiento drawcolumns pero me empieza a pintar todo xDDDD
ok amigo mirare tu codigo y les digo que tal muchas gracias por la ayuda |
#9
|
||||
|
||||
Hola Memo... Creo haber tenido el mismo problema.... Tu das DobleClick en la grilla pero el color no cambia inmediatamente... Cierto?
Pues en tu caso yo lo resolvería poniendo en el evento OnDblClick la sentencia: Código:
DBGrid1.Repaint; Bueno otra técnica para lograr un repaint es llamar al método INVALIDATE: <TControl>.Invalidate; Este se aplica bastante cuando estas creando tus propios componentes... Si algo ha cambiado en el componente tu puedes llamr al Invalidate en lugar de esperar que Windows lo haga cuando detecte un cambio... Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Hola amigos | Caral | La Taberna | 30 | 09-03-2008 16:36:12 |
S.O.S amigos programadores | karlaoax | La Taberna | 19 | 19-10-2007 19:59:28 |
Para mis amigos los come uña | jhonny | La Taberna | 8 | 11-05-2007 04:57:35 |
Hola amigos... | DB-ADO | Conexión con bases de datos | 5 | 01-03-2005 14:30:54 |
Reencuentro de dos amigos. | marcoszorrilla | Humor | 0 | 09-05-2004 00:38:01 |
|