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

uploader@clubedelphi.net