PDA

Ver la Versión Completa : pasar codigo DBGrid a cxGrid, seleccionar una fila y cambiar el color, no desapareser


sakuragi
11-08-2005, 19:13:08
hola que tal

tengo problemas para pasar un codigo de un DBGrid a un cxGrid, este codigo hase que se seleccione toda la fila y la pinte de un color

y siempre esta presente aunque quitemos el foco del DBGrid

el codigo es:
evento "OnDrawColumCell"

if (gdSelected in state) then
begin
(sender as TDBGrid).Canvas.Font.color:=(tool.color xor clWhite);
(sender as TDBGrid).Canvas.Brush.color:=tool.color;
end;
(sender as TDBGrid).DefaultDrawColumnCell(Rect,DataCol,column,state);


bien
eh leido la ayuda del cxGrid pero no le eh podido ahyar
vi algo de ACanvas en igual de Sender pero a la hora de compilar me decia que no era el mismo tipo

si alguien sabe algo les agradeseria cual quier ayuda de como pasar ese codigo aun cxGrid

tambien probe en los eventos DRAW del cxGrid pero no puede conseguir nada

de hante mano gracias

Neftali [Germán.Estévez]
12-08-2005, 09:30:17
Supongo que ésto te puede servir:

How to Apply a Custom Draw Procedure to the Entire Row Depending on a Cell Value:

http://www.devexpress.com/Support/KnowledgeBase/ShowArticle.xml?kbid=202&prod=ExpressQuantumGrid

sakuragi
12-08-2005, 16:45:05
gracias

el enlase no funciona

Neftali [Germán.Estévez]
12-08-2005, 17:45:45
A mi me funciona bien, pero sino puedes acceder a la misma página haciendo lo siguiente:

http://www.devexpress.com/Support/KnowledgeBase/

En ésta página escribe como texto:
How to Apply a Custom Draw Procedure

y en el producto:
ExpressGuqntumGrid

sakuragi
12-08-2005, 17:53:29
gracias nueva mente

creo que hanteriormente que intente el server tava caido ya pude entrar

lo checare

gracias

saludos

VIRU
19-08-2005, 20:12:52
lograste hacer lo que querias, yo despues de buscar bastante decidi usarlo con los styles generas el style y lo aplicas en mi caso era cambiar el color de una fuente de una celda segun su contenido.

procedure TForm1.wwdbgrid1DBTableView1SexoStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);

begin
if arecord.Values[2] = 'H' then
astyle := cxstyle1;
end;

en caso que quiersa identificar la columna por su nombre y no por su index...

procedure TForm1.wwdbgrid1DBTableView1SexoStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
AColumn: TcxCustomGridTableItem;
begin
AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('Sexo');
if VarToStr(ARecord.Values[AColumn.Index]) = 'H' then
astyle := cxstyle1;
end;


espero te sirva

sakuragi
22-08-2005, 17:11:02
gracias

lo checare
:cool:

sakuragi
07-10-2005, 00:01:16
hola que tan de nuevo.

ese metedo quise implementarlo en otro evento pero no me deja se traba en esta linea:

if VarToStr(ARecord.Values[AColumn.Index]) = 'H' then


esto lo proben los eventos "OnClick" y "OnKeyDown"

declare todas las varibles:

var
Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem;
AStyle: TcxStyle;
AColumn: TcxCustomGridTableItem;


no se si para en estos eventos se tiene que cambiar la forma de la sintaxys ya lo probe de muchas formas pero no me ha salido bien.

saludos

gracias

VIRU
07-10-2005, 05:50:16
Dame mas datos cual es el error que te tira y en que parte de la linea te da el error.

sakuragi
07-10-2005, 16:56:36
hola que tal.

mas bien no es un erro de mensaje se traba el programa en esta linea

esto es en el evento "OnClick" y "OnKeyDown"

if VarToStr(ARecord.Values[AColumn.Index]) = 'H' then


eso lo detecte con mensajes box hantes y despues de la linea.

tambien por el "showmessage" que no me mostraba nada, mas bien
se trababa tambien.

creo que es algo de esa linea


pero igual a como esta en el evento "OnGetContentStyle" lo puse
igual.


saludos

VIRU
08-10-2005, 06:46:09
mira en este momento no tengo el delphi para chequear no me das muchos datos del porque se detiene pero en fin pueden ser dos cosas, disculpa por ahi si insulto tu inteligencia pero uno nunca sabe, puede que en los eventos mencionados falte alguno de estos objetos, Arecord o Acolumn, o puede que se trabe porque yo estoy comparando el contenido de la celda con H y por ahi en tu caso no es asi... ojo el ejemplo que yo puse es de un soft propio, tendras que adaptarlo a tu necesidad especifica.

Saludos

pepe2000
14-01-2006, 04:41:39
todos piden cambiar el color de una fila de acuerdo a una condicion. Alguien sabe como poner de un color fijo (ejm. azul) la fila donde se encuentra actualmente el cursor?

Omartsu
10-02-2006, 20:19:34
Quiero poner en rojo una fila que haya seleccionado, pero que se cambie de color cuando lo guarde en una tabla en la cual guardo el id de esa fila, si me ayudan se los agradecería bastante, soy muy nuevo en Delphi, disculpen las molestias, gracias.

VIRU
11-02-2006, 10:02:07
pepe2000 mira el codigo anterior, trata de entenderlo, muy bien ahora cuando el cursor se encuentra en una fila, no es una posible condicion para consultar?

omartsu, no entiendo bien lo que quieres hacer, quieres poner de un color una fila seleccionada en un dbgrid, pero que cuando este guardada en otra tabla tenga otro color?