Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-08-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
colores diferentes dentro de dbgrid

Hola amigos del foro, estoy armando una aplicacion para el manejo de reservas y ocupaciones de un hotel, utilizo una grilla en donde las filas van a ser los dias TDates y las columnas van a ser las habitaciones. Dos cuestiones tengo:
La grilla posee un primer campo del tipo TDate y los otros 20 campos del tipo A(100) donde va R u O en caso de estar o no reservada, dos espacios en blanco y el nombre del cliente.
Primero: si se da que el primer caracter es una "O" entonces me gustaria pintar la informacion de la celda con el color azul en caso de que sea "R" esa celda con el color verde.
Segundo: se pueden ver las filas como columnas y viceversa??? para poder recorrer la grilla horizontalmente y no verticalmente?? Uso delphi 6 y paradox.

ejm:

Fecha Habit 1 Habit 2 Habit 3 Habit 4 Habit 5
01/01/07 O / Perez R / Diaz O / Mendez
02/01/07 O / Perez R / Diaz O / Gonzales
.......
......
......

Muchisimas gracias por todo.
Responder Con Cita
  #2  
Antiguo 05-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Con respecto a los colores prueba esto

Cita:
procedure TBusquedas.grBusquedaDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Loquequieras = 'O' then
grBusqueda.canvas.brush.color := El color que quieras;
grBusqueda.DefaultDrawColumnCell(rect,DataCol,Column,State)

end;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 18-08-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
No me funciona, color de celda distinto

Hola amigos del foro, yo necesito cambiar segun el valor de la celda de una grilla que puede ser O u R el color de la fuente, y no puedo hacerlo me cambia todo. Les agradeceria me orientaran.
Muchisimas gracias por todo!
Responder Con Cita
  #4  
Antiguo 19-08-2007
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
espero te sirva esto

Creo que esto te puede servir tienes que leer el dato que t interesa y asignarle el color que quieras.

Código Delphi [-]
 procedure tdata.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
inherited;
if query1.Field[No].AsString[1] ='R' then
begin
DBGrid1.Canvas.Font.Color:=clBLACK;
dbgrid1.Canvas.Brush.Color:=clblue;
end
ELSE
BEGIN
if query1.Field[No].AsString[1] ='O' then
BEGIN
DBGRID1.Canvas.Font.Color:=CLWHITE;
DBGRID1.Canvas.Brush.Color:=CLgreen
END
END;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
end;








tienes que hacer esto con cada columna No es el numero de field en tu tabla de paradox

Espero te sirva
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas
Goethe
Responder Con Cita
  #5  
Antiguo 19-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Otra forma de como hacerlo a como te lo han dicho en las otras respuestas que te han dado.

Código Delphi [-]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  with Sender as TStringGrid do begin
    If StringGrid1.Cells[ACol,ARow] <> '' then begin
       Case StringGrid1.Cells[ACol,ARow][PosiciondelaLetra] of
          'O' : begin
                  Canvas.Brush.Color := clNavy;
                end;
          'R' : begin
                  Canvas.Brush.Color := clGreen;
                end;
       end;
    end;
  end;
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 21-08-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
Muchas gracias amigos del foro

Muchas gracias amigos voy a probar ambas respuestas.
Responder Con Cita
  #7  
Antiguo 22-08-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
No entiendo que es el query1 que me pusistes!!

Amigo del foro no comprendo que es el query1 que me pusistes
Muchisimas gracias por todo

Cita:
Empezado por JULIPO Ver Mensaje
Creo que esto te puede servir tienes que leer el dato que t interesa y asignarle el color que quieras.


Código Delphi [-]
procedure tdata.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
inherited;
if query1.Field[No].AsString[1] ='R' then
begin
DBGrid1.Canvas.Font.Color:=clBLACK;
dbgrid1.Canvas.Brush.Color:=clblue;
end
ELSE
BEGIN
if query1.Field[No].AsString[1] ='O' then
BEGIN
DBGRID1.Canvas.Font.Color:=CLWHITE;
DBGRID1.Canvas.Brush.Color:=CLgreen
END
END;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
end;










tienes que hacer esto con cada columna No es el numero de field en tu tabla de paradox

Espero te sirva
Responder Con Cita
  #8  
Antiguo 22-08-2007
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
Es un componente de Bases de datos

Es un componente con el que puedes leer las tablas de bases de datos incluyendo paradox puede ser un query o table dependiendo de como lonecesites utilizas alguno, si no utilizas este tipo de componente lo cambias por el componente que tu utilizas para leer los datos.

Espero Sea Claro
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas
Goethe
Responder Con Cita
  #9  
Antiguo 23-08-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
No puedo leer los datos

Amigo disculpa, pero no puedo leer los datos donde vos pusistes query1.
Como puedo hacer para leerlo?? Muchas gracias!!! Tengo el mismo problema con la solucion en que aparece

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
with Sender as TStringGrid do begin
If StringGrid1.Cells[ACol,ARow] <> '' then begin
Case StringGrid1.Cells[ACol,ARow][PosiciondelaLetra] of
'O' : begin
Canvas.Brush.Color := clNavy;
end;
'R' : begin
Canvas.Brush.Color := clGreen;
end;
end;
end;
end;

Ese TStringGrid1 que seria??? cuando compilo me sale el msj de error.
Bueno disculpen tantas preguntas.
Gracias nuevamente por todo.
Responder Con Cita
  #10  
Antiguo 23-08-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
No entiendo que es el query1

No entiendo que es el query1
Muchas gracias !!
Responder Con Cita
  #11  
Antiguo 28-08-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
No entiendo que es el query1

No entiendo que es el query1.
Responder Con Cita
  #12  
Antiguo 28-08-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 21
karlaoax Va por buen camino
Yo lo he hecho con una tabla cualquiera, y funciona a la perfeccion.
Código Delphi [-]
if table1.Field[No].AsString[1] ='rojo' then
begin
DBGrid1.Canvas.Font.Color:=clBLACK;
dbgrid1.Canvas.Brush.Color:=clblue;
end

Aunque ahora me intriga, intentarlo validando con una fecha anterior contra una actual, ejemplo: 11 de Agosto 2007 vs 28 de Agosto, hacer una operacion de resta entre estas 2, y colorear aquellas que sean mayores a 15, interesante, voy a hacer una prueba.
Responder Con Cita
  #13  
Antiguo 28-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
el query1 es el origen de los datos, como recuperas los datos de la tabla????
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #14  
Antiguo 04-09-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
Color a celdas de DBGrid

Hola amigos del foro, sigo con problemas para colorear segun el valor de la celda la misma de un color un otro.
Las soluciones que me han dado, no me funcionan. Yo utilizo un DBGrid, en la primer columna poseo por cada fila las fechas correlativas y en cada columna restante tengo las cabañas, me gustaria poder colorear con un color u otro cada celda segun el valor de la misma.
Les agradeceria me orientaran mas porque no puedo lograrlo. En algunas soluciones me han puesto Query para levantar los datos en otros TStringGrid, realmente no me ha funcionado nada.
Les agradeceria me orientaran.
Muchisimas gracias por todo y disculpen las molestias.
Responder Con Cita
  #15  
Antiguo 04-09-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
que tal si colocas el codigo que estas utilizando a ver donde puede estar el error????
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #16  
Antiguo 05-09-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
Aca te paso el codigo

Código Delphi [-]
procedure tdata.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
inherited;
if query1.Field[No].AsString[1] ='R' then
begin
DBGrid1.Canvas.Font.Color:=clBLACK;
dbgrid1.Canvas.Brush.Color:=clblue;
end
ELSE
BEGIN
if query1.Field[No].AsString[1] ='O' then
BEGIN
DBGRID1.Canvas.Font.Color:=CLWHITE;
DBGRID1.Canvas.Brush.Color:=CLgreen
END
END;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Column, State);
end;


Me tira error en el query1, el campo No no se que es.
Supongo que esos son los dos puntos que estan mal.
Muchas gracias por todo.
Responder Con Cita
  #17  
Antiguo 05-09-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 21
karlaoax Va por buen camino
Cita:
Empezado por zugazua2001 Ver Mensaje
Me tira error en el query1, el campo No no se que es.
Supongo que esos son los dos puntos que estan mal.
Muchas gracias por todo.
Mira
Field[No] = Nombre de tu campo
AsString[1] = Orden del campo, normalmente se empieza con un 0 cero
Responder Con Cita
  #18  
Antiguo 05-09-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
me tira error ya en el tquery1

Desde el query1 es que me tira error.
muchas gracias.

Cita:
Empezado por karlaoax Ver Mensaje
Mira
Field[No] = Nombre de tu campo
AsString[1] = Orden del campo, normalmente se empieza con un 0 cero
Responder Con Cita
  #19  
Antiguo 05-09-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
No es el numero del campo en el conjunto de Fields, desde el 0 hasta el n-1, se supone debes sustituirlo por el valor correspondient
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #20  
Antiguo 07-09-2007
zugazua2001 zugazua2001 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Necochea
Posts: 237
Poder: 20
zugazua2001 Va por buen camino
No entiendo que es el query1

El query no me lo reconoce. no entiendo porque el campo No, si yo quiero que me recorra todas las columnas.
Sinceramente no comprendo.
Muchas gracias

Cita:
Empezado por eduarcol Ver Mensaje
No es el numero del campo en el conjunto de Fields, desde el 0 hasta el n-1, se supone debes sustituirlo por el valor correspondient
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
¿Cómo poner colores diferentes a los Items de un TListView? Alcolea OOP 2 16-02-2007 00:36:41
dbgrid con diferentes .db ale21alito SQL 2 08-02-2005 20:38:31
dbgrid con colores Giniromero Conexión con bases de datos 7 08-07-2004 16:26:29
Celdas de colores diferentes en un TStringGrid phyera Gráficos 2 14-09-2003 19:06:26
Colores en una DBGrid REDCOM Varios 2 26-05-2003 20:42:58


La franja horaria es GMT +2. Ahora son las 04:48:43.


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