Mudando a cor da célula ativa do DBGrid
Em uma nova aplicação, insira um DBGrid, uma Table, um DataSource e um ComboBox. Insira os valore vermelho, cinza e azul na propriedade Items do ComboBox (um em cada linha), conecte a Table a uma tabela em um banco de dados já criado (use a propriedade DatabaseName para escolher o banco, a propriedade TableName para escolher uma tabela relativa ao banco e a propriedade Active para ativar a tabela), ligue o DataSource a Table (propriedade DataSet), por fim ligue o DBGrid ao DataSource (propriedade DataSource). Escreva o código abaixo no evento OnDrawDataCell do DBGrid.
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
var
Cor: TColor;
begin
if gdFocused in State then
with (Sender as TDBGrid).Canvas do
begin
case combobox1.ItemIndex of
0: Cor := clRed;
1: Cor := clGray;
2: Cor := clBlue;
end;
Brush.Color := Cor;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, Field.AsString);
end;
end;
Execute a aplicação e veja o funcionamento.
por Erick Rhamnusia