Dúvida com barra de rolagem no DBGrid

Delphi

02/10/2007

Colegas;
Já procurei em tudo quanto é fórum e não encontrei uma solução para esta dúvida.

Tem como configurar a barra de rolagem do DBGrid para que ao rolar ela para baixo ou para cima, o conteúdo do grid vá rolando junto. Assim como no Word por exemplo?


Vispo

Vispo

Curtidas 0

Respostas

Franklin.farias

Franklin.farias

02/10/2007

Barra de rolagem funciona. O que vc deve estar querendo é com o scroll do mouse, não é?
Acho que não há como fazer isto em um TDBGrid.
Existem outros componentes que fazem isto (RxDBGrid), pode ser um solução.
Mas caso queria usar um TDBGrid seria necessário criar outro componente herdado de TDBGrid e adicionar os eventos para fazer o scroll do mouse mover os dados.

Código a ser adicionado:
function TMDSDBGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
var
  Distance: Integer;
begin
  Result := False;
  if Assigned(OnMouseWheelDown) then
    OnMouseWheelDown(Self, Shift, MousePos, Result);
  if not Result then
  begin
    if not AcquireFocus then
      Exit;
    if ssCtrl in Shift then
      Distance := VisibleRowCount - 1
    else
      Distance := 1;
    if DataLink.Active then
      Result := DataLink.DataSet.MoveBy(Distance) <> 0;
  end;
end;

function TMDSDBGrid.DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;
var
  Distance: Integer;
begin
  Result := False;
  if Assigned(OnMouseWheelUp) then
    OnMouseWheelUp(Self, Shift, MousePos, Result);
  if not Result then
  begin
    if not AcquireFocus then
      Exit;
    if ssCtrl in Shift then
      Distance := VisibleRowCount - 1
    else
      Distance := 1;
    if DataLink.Active then
      Result := DataLink.DataSet.MoveBy(-Distance) <> 0;
  end;
end;



GOSTEI 0
Vispo

Vispo

02/10/2007

[b:d8e764bf43]franklin.farias[/b:d8e764bf43], o problema do scroll do mouse eu já resolvi.

O que eu quero fazer é o seguinte: quando eu rolar a barra clicando com o mouse e arrastando, quero que o grid acompanhe a barra. Assim como no Internet explorer, Word, etc..


GOSTEI 0
POSTAR