Mengubah warna sebuah komponen DBGrid pada Delphi selalu diletakkan pada event OnDrawColumnCell, beberapa kali saya mencoba untuk menerapkannya pada Lazarus namun gagal bahkan tidak ada perubahan sama sekali.
Setelah beberapa kali mencoba ternyata untuk #lazarus diletakan pada event yang berbeda yaitu OnPrepareCanvas
procedure TForm1.DBGrid1PrepareCanvas(sender: TObject; DataCol: Integer;
Column: TColumn; AState: TGridDrawState);
begin
with (Sender as TDBGrid) do
begin
if (DataCol=0) OR (DataSource.DataSet.FieldByName('ID').asInteger=9000) then
begin
Canvas.Brush.Color:=clRed;
Canvas.Font.Color:=clWindowText;
end;
end;
end;
Perintah diatas dibaca :
Apabila berada di kolom ke-0 atau pada Fieldname='ID' yang bernilai 90000 maka cell akan berwarna merah, seperti contoh dibawah (nama kolom tidak sama karena capture berbeda dengan syntax, hanya sebagai ilustrasi)

0 comments:
Post a Comment