Created (c) by Princexells Seyka (Princelling Saki)

Senin, 18 Maret 2013

Mengganti Warna Baris Di DBGrid

        Karena banyak yang bertanya, “Bagaimana mewarnai baris/cell dalam TDBgrid standar bawaan Delphi sesuai nilai tertentu?”, saya posting di sini saja biar yang lain gak repot mencarinya.




Caranya mudah. Klik DBGrid yang akan diberi warna, kemudian lihat event OnDrawColumnCell.



Klik ganda pada event tersebut dan masukkan kode sehingga menjadi seperti berikut:

procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 if TDBGrid(Sender).DataSource.DataSet.FieldByName('jumlah_r').AsFloat>50000000 then
 //if Column.FieldName = 'jumlah_r' then
 TDBGrid(sender).Canvas.Brush.Color := clRed;
 TDBGrid(sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

       Kode ini akan mewarnai baris pada DBGrid menjadi berwarna merah bila field “jumlah_r” bernilai lebih dari 50.000.000. Dan hasilnya seperti pada gambar di atas.
Bila ingin hanya kolom tertentu saja yang diberi warna, dalam contoh ini adalah kolom “jumlah_r”, silahkan hilangkan tanda komentar (//) di depan baris

//if Column.FieldName = 'jumlah_r' then

Sehingga kodenya menjadi:

procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if TDBGrid(Sender).DataSource.DataSet.FieldByName('jumlah_r').AsFloat >50000000 then
if Column.FieldName = 'jumlah_r' then
TDBGrid(sender).Canvas.Brush.Color := clRed;
TDBGrid(sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Hasilnya:

0 komentar:

Posting Komentar