Muitas vezes ficamos incomodados com aquele ScrollBar que teima em aparecer mesmo que o DBGrid tenha apenas 1 ou 2 linhas.

Visando resolver este problema, este post traz para você uma solução bastante simples de ser implementada.

Coloque no evento onDrawColumnCell do seu DBGrid.


procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (TStringGrid(DBGrid1).RowCount-1) < 10 then //Se tiver menos de 10 linhas
    ShowScrollBar(DBGrid1.Handle,SB_VERT,False); //Remove barra Vertical
end;
Listagem 1. Código do evento onDrawColumnCell do DBGrid

É claro que você deve melhorar a lógica, como por exemplo achar o número de linhas (exibidos sem ScrollBar) dependo da altura do DBGrid.