Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ondrawcolumncell en QuantumGrid (https://www.clubdelphi.com/foros/showthread.php?t=59765)

Willo 08-09-2008 17:23:41

ondrawcolumncell en QuantumGrid
 
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á.

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)
Código:

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...

Código Delphi [-]
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

Cita:

Empezado por TOPX (Mensaje 312443)
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á.

"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


La franja horaria es GMT +2. Ahora son las 22:25:56.

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