cxgrid te hücre renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
era
Üye
Mesajlar: 17
Kayıt: 01 Oca 2009 09:23

cxgrid te hücre renklendirme

Mesaj gönderen era »

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.
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: cxgrid te hücre renklendirme

Mesaj gönderen akdatilla »

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;
Cevapla