PDA

Ver la Versión Completa : ondrawcolumncell en QuantumGrid


Willo
08-09-2008, 17:23:41
Hola a todos;

estamos cambiando los grids de nuestra aplicacion a QuantumGrids de DEV EXPRESS.

Definitivamente esta excelente el producto, pero la curva de aprendizaje a resultado mas bien larga....

En este momento, estamos atorados tratando de implementar una funcionalidad que teniamos con el evento Ondrawcolumncell, que nos permitia cambiar el color de los renglones del grid en base a un valor de un campo en el dataset.

Como podemos hacer lo mismo en QuantumGrid?


Gracias de antemano.

Willo

ContraVeneno
08-09-2008, 17:37:44
en el evento OnCustomDrawCell deberías encontrar todo lo que necesitas. "AColumn" que representa la celda que se está pintando, "AColor" que define el color y algunas otras cosas que te pueden servir.
¿has intentado algo? ¿algún código?

TOPX
08-09-2008, 17:42:14
Hola,

Para especificar un color (de fondo y texto) en un registro, se debe crear un TcxStyle (con el editor del TcxStyleRepository) y asignarlo en el evento onGetContentStyle de la View en cuestión. Como lo muestran acá (http://www.devexpress.com/Support/Center/KB/p/A328.aspx).

Willo
08-09-2008, 17:43:57
Ese es el problema... no existe el objeto Acolumn....!

este es el codigo que tengo hasta el momento....(no funciona como debe ser)

procedure TFclientes.GridDBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
ARec: TRect;
ATextToDraw, val: String;
AIsVertical: Boolean;
procedure SetTextToDraw;
begin
ATextToDraw := AViewInfo.GridRecord.DisplayTexts[AViewInfo.Item.Index];
end;
begin
SetTextToDraw;
ARec := AViewInfo.Bounds;
if (Qclientes.FieldByName('CL_EMAIL').asstring = '') and (Qclientes.FieldByName('CL_EMAIL').asstring = '') then
begin
Acanvas.Canvas.Font.Color := clred;
end
else
begin
Acanvas.Canvas.Font.Color := clwindowtext;
end;
ACanvas.Canvas.FillRect(ARec);
end;

ContraVeneno
08-09-2008, 17:49:52
... yo tengo una versión diferente... :o mas antigua, creo que no te podré ayudar...


procedure TFrmInicial.dxgDatosCustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
begin
inherited;
//aquí el código...
end;

TOPX
08-09-2008, 17:52:58
Hola,

Para especificar un color (de fondo y texto) en un registro, se debe crear un TcxStyle (con el editor del TcxStyleRepository) y asignarlo en el evento onGetContentStyle de la View en cuestión. Como lo muestran acá (http://www.devexpress.com/Support/Center/KB/p/A328.aspx).

"yo quiero participar" ...

Neftali [Germán.Estévez]
09-09-2008, 09:13:48
Yo lo he hecho alguna vez y la sokución más óptima a la que llegamos es la misma que te propone TOPX (utilizando estilos).
De todas formas si miras en la web de DevExpress (KnowledgeBase) hay ejemplos y artículos "a patadas"; Este es uno de los más preguntados, así que si le dedicas un poco de tiempo encontrarás código.

Willo
09-09-2008, 23:24:55
Efectivamente, la solucion señalada por TOPX funciona excelente.

Gracias