Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[8357] Re:DBgrid에 스크롤 바가 마우스 휠에 따라움직이지 않네요!!
류종택 [ryujt] 2040 읽음    2002-10-10 18:55
procedure TCustomDBGrid.WMVScroll(var Message: TWMVScroll);
var
  SI: TScrollInfo;
begin
  if not AcquireFocus then Exit;
  if FDatalink.Active then
    with Message, FDataLink.DataSet do
      case ScrollCode of
        SB_LINEUP: FDataLink.MoveBy(-FDatalink.ActiveRecord - 1);
        SB_LINEDOWN: FDataLink.MoveBy(FDatalink.RecordCount - FDatalink.ActiveRecord);
        SB_PAGEUP: FDataLink.MoveBy(-VisibleRowCount);
        SB_PAGEDOWN: FDataLink.MoveBy(VisibleRowCount);
        SB_THUMBPOSITION:
          begin
            if IsSequenced then
            begin
              SI.cbSize := sizeof(SI);
              SI.fMask := SIF_ALL;
              GetScrollInfo(Self.Handle, SB_VERT, SI);
              if SI.nTrackPos <= 1 then First
              else if SI.nTrackPos >= RecordCount then Last
              else RecNo := SI.nTrackPos;
            end
            else
              case Pos of
                0: First;
                1: FDataLink.MoveBy(-VisibleRowCount);
                2: Exit;
                3: FDataLink.MoveBy(VisibleRowCount);
                4: Last;
              end;
          end;
        SB_BOTTOM: Last;
        SB_TOP: First;
      end;
end;


콤포넌트 자체에 휠마우스에 대한 고려가 안되어 있는 것으로 보입니다..
즉, 위아래로 스크롤 되는 것은 윈도우즈 오에스의 영역이라 가능하지만..
화면을 넘어서서 스크롤이 되려면 FDataLink.MoveBy(-FDatalink.ActiveRecord - 1);
이 실행되어야 하는 것으로 보입니다..
콤포넌트를 수정하여 새로 만들기 전에는 안될 듯..

제가 테스트 해보니..
그리드에서 위아래 이동은 되지만..
데이터 레코드의 커서의 이동이 안되고..
셀랙트 표시의 레코드로 이동 역시 안되더군요..
그리고 그 화면 자체의 이동이 불가능 하므로 스크롤바의 이동조차 안되고요..

Filtered와 같은 프로퍼티와는 전혀 무관할 것이 당연하고요 -.-

조희문 님이 쓰신 글 :
: DBgrid에 연결된 데이타 셋은 쿼리이고요
: 쿼리로 데이타를 축출해서 DBgrid에 보여주는 형식입니다
: 이렇게 데이타를 값을 보여주고 DBgrid에 스크롤 바를 움직이면
: 스크롤 바는 움직이지 않아요 휠에 동작에 ...
: 휠값에 스크롤 바가 움직이지 않는 이유는 무엇이 있을까요??
:
: 다른 답변을 보니 filted값을 false로 해야 스크로 바가 움직인다고
: 하던데  그렇게 했는데도 움직이지 않내요
: 혹시 SQL문에 따라서도 영향을 받는지요!!!
:
: 맨날 질문만 올리고..
: 고맙습니다..

+ -

관련 글 리스트
8356 DBgrid에 스크롤 바가 마우스 휠에 따라움직이지 않네요!! 조희문 1731 2002/10/10
8357     Re:DBgrid에 스크롤 바가 마우스 휠에 따라움직이지 않네요!! 류종택 2040 2002/10/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.