Muitas vezes ficamos incomodados com aquele ScrollBar que teima em aparecer mesmo que o DBGrid tenha apenas 1 ou 2 linhas.
Por causa desse incômodo que resolvi pesquisar até chegar a seguinte solução.
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) then //Se tiver menos de 10 linha
ShowScrollBar(DBGrid1.Handle,SB_VERT,False); //Remove barra Vertical
end;
É 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.
Fonte: ActiveDelphi
terça-feira, 6 de novembro de 2007
Controlar a exibição do ScrollBar do DBGrid
Postado por
Cristiano Martins Alves
às
02:43
Marcadores: DBGrid
Assinar:
Postar comentários (Atom)
Perfil
- Cristiano Martins Alves
- São Paulo, SP, Brazil
- Programador Delphi desde 2000, desenvolvendo aplicações Client/Server. Colunista da Revista ActiveDelphi Membro Fundador do DUG-SP ( www.dug-sp.com )
Blogs de Amigos
Exemplos
Search
Marcadores
- Actions (1)
- AJAX (1)
- API (2)
- Arquivos (1)
- ASP.NET (1)
- Blackfish SQL (1)
- Borcon (3)
- CodeGear (2)
- Datas (1)
- Datasnap (3)
- DBExpress (1)
- DBGrid (2)
- Delimitados (1)
- Delphi (1)
- Delphi2009 (3)
- DUG (1)
- ECO (1)
- Embarcadero (1)
- ExtractStrings (1)
- Firebird (1)
- Framework (1)
- Funcões (2)
- Herança Visual (1)
- IDE (1)
- Join (1)
- Lookup (1)
- POO (1)
- RAD Studio 2007 (1)
- RN's (1)
- SQL Server (1)
- StringList (2)
- Strings (2)
- TextFile (1)
- Tiburon (2)
- TypeLibrary (1)
- UML (1)
2 comentários:
Blz, era exatamente o que eu precisava!
Só uma observação.
Na primeira linha do if tá faltando o operador de comparação:
if (TStringGrid(DBGrid1).RowCount-1) <= 10 then
Muito obrigado,
Francisco
Muito legal essa dica. Sou iniciante em programação e estou com uma dúvida. Ando encontrando outros problemas com relação ao dbgrid. Por exemplo, quando tenho vários registros, e clico no barra de rolagem para visualizá-los um a um , automaticamente pula do primeiro para o último registro, e esse efeito acaba se tornando indesejável.
Se tiver uma solução para este problema , ficarei muito grato.
Desde já agradeço.
Marques.
Postar um comentário