GARANTIR DESCONTO

Fórum Tirar Barra de Rolagem Vertical de DBGrig #268599

15/02/2005

0

Como faço para fazer com que a barra de rolagem vertical de um DB Grid não apareça?
Tem menos linhas doque o tamanho do dbgrid e mesmo assim a barra aparece.


Raserafim

Raserafim

Responder

Posts

15/02/2005

Diogoalles

Para remover a barra de rolagem vertical de componente TDBGrid, você precisa apenas criar um novo componente herdado da classe TDBGrid e reescrever o método paint.

No método Paint você usará a API do Windows SetScrollRange definindo o tamanho máximo e mínimo do scroll para zero (isto desabilitará a exibição da barra de scroll).

E então acione o inherited paint para que o objeto novo possa ser desenhado.

O código abaixo mostra uma Unit criada de uma instância do componente TDBGrid e que não possui a barra de rolagem vertical.

unit Newgrid; 
interface 
uses 
WinTypes, WinProcs, Classes, DBGrids; 
 
type 
TNoVertScrollDBGrid = class(TDBGrid) 
 
protected 
procedure Paint; override; 
end; 
 
procedure Register; 
 
implementation 
 
procedure TNoVertScrollDBGrid.Paint; 
begin 
SetScrollRange(Self.Handle, SB_VERT, 0, 0, False); 
inherited Paint; 
end; 
 
procedure Register; 
begin 
RegisterComponents(´Data Controls´, [TNoVertScrollDBGrid]); 
end; 
end. 



Responder

Gostei + 0

16/02/2005

Raserafim

valeu diogo, deu certo.
utilizei a mesma linha de comando de uma outra forma. coloquei no evento OnPaint do form, com isso nem precisei criar um componente e nem herdar.


Responder

Gostei + 0

28/02/2005

Raserafim

não deu tão certo assim. ao abrir o form,o dbgrid aparece sem as barras, mas é só musra de linha que as barras voltam.
Fiz então uma classe e herdei da dbgrid e sobrescrevi o metodo paint, mas o refresh é muito grande, não dá certo.
preciso de uma outra maneira pra remover as barras de rolagem da dbgrid.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar