Componentes Delphi : DevExpress QuantumGrid (Dibujando iconos en una celda)
Para poder realizar lo siguiente:
Debemos sustituir el valor que tengamos en la celda, por unos iconos preseleccionados, que estaran guardados en un TImageList:
Debemos sustituir el valor que tengamos en la celda, por unos iconos preseleccionados, que estaran guardados en un TImageList:
procedure TfInformation.tvInfCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
AImageRect: TRect;
iIndex1, i: integer;
begin
//Buscamos la columna para dibujar los iconos
if AViewInfo.Item.Caption = 'Classificació' then
begin
ACanvas.Brush.Color := AViewInfo.Params.Color;
ACanvas.FillRect(AViewInfo.Bounds);
//Cogemos el Ãndice de la columna
iIndex1 := tvinf.GetColumnByFieldName('Classificacio').Index;
AImageRect := AViewInfo.ContentBounds;
if AViewInfo.GridRecord.Values[iIndex1] = 0 then
begin
for i := 1 to 5 do
begin
ACanvas.DrawImage(ImageList1, AImageRect.Left, AImageRect.Top, 2);
AImageRect.Left := AImageRect.Left + 16;
end;
end
else
begin
for i := 1 to AViewInfo.GridRecord.Values[iIndex1] do
begin
ACanvas.DrawImage(ImageList1, AImageRect.Left, AImageRect.Top, 1);
AImageRect.Left := AImageRect.Left + 16;
end;
for i := AViewInfo.GridRecord.Values[iIndex1] to 4 do
begin
ACanvas.DrawImage(ImageList1, AImageRect.Left, AImageRect.Top, 2);
AImageRect.Left := AImageRect.Left + 16;
end;
end;
ADone := True;
end;
end;
Localizamos el valor del registro y en función de este ponemos las estrellas una detras de otra, y en función de su valor ponemos más o menos de las doradas.
Comments
Post a Comment