cxgrid te renklendirme ile ilgili sadece satır ve sütün renklendirme ile ilgili örnekler verilmiş.Benim yapmak istediğim sadece hücre renklendirmek.örneğin aynı satır üzerinde 4 kolunlu bir gridim var ikinci kolonumdaki hücre 0 dan buyukse mavi değilse normal girid rengini alacak, üçüncü kolonumdaki hücre 0 dan küçükse kırmızı rengini alacak değilse yine standart grid rengi kalacak.Renklendirmeyi sadece satır üzerindeki ilgili hücreler için vereceğim.
Bu konuda yardımlarınızı bekliyorum.Şimdiden teşekkürler.
cxgrid te hücre renklendirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: cxgrid te hücre renklendirme
Kod: Tümünü seç
function GetcxGridRecordStrVal(AView: TcxGridDBTableView;ARec: TcxCustomGridRecord;fn:string):String;
var
i:integer;
col:TcxGridDBColumn;
begin
col:=AView.GetColumnByFieldName(fn);
if col<>nil then
i:=col.Index else i:=-1;
if i>=0 then
Result:=VarToStr(ARec.Values[i])
else
Result:='';
end;
procedure TButceAyF.cxList1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
Var
cf,s:String;
c,ayno:integer;
sz,prm:Boolean;
ARecord: TcxCustomGridRecord;
AView: TcxGridDBTableView;
begin
if not Assigned(AViewInfo) then exit;
ADone:=False;
AView := TcxGridDBTableView(Sender);
ARecord := AViewInfo.GridRecord;
if ARecord = nil then
Exit;
if (AViewInfo.Item.Index<0) or (AViewInfo.Item.Index>=AView.ColumnCount)then
begin
exit;
end;
cf:=AView.Columns[AViewInfo.Item.Index].DataBinding.FieldName;
if Pos('bab_miktar',cf)=0 then exit;
ayno:=TextToInt(cf);
s:=GetcxGridRecordStrVal(AView,ARecord,'bab_ozellik');
//PPPPPPPPPPPPSSSSSSSSSSSS
//s:=QStrField(QList.QD,'bab_ozellik');
c:=0;
sz:=copy(s,12+ayno,1)='S';
Prm:=copy(s,ayno,1)='P';
if sz and (not prm) then c:=clRed
else
if (not sz) and prm then c:=clBlue
else
if sz and prm then c:=clGreen;
if c>0 then
Begin
ACanvas.Brush.Color := c;
ACanvas.Font.Color := clBlack;
End;
end;