Q&A

  • 두개의 DBGrid를 동시스크롤 하는 방법요..
Tmessage를 이용하면 된다고 들었는데요...
WM_VSCROLL :                   //상하스크롤
WM_HSCROLL :                   //좌우스크롤
혹시 예시를 하나 주신다면..

상하는 필요 없구요...
좌우 스크롤만 되면 되는데..
DBGrid1 에서 DBGrid2를 컨트롤 할때와
역으로 DBGrid2에서 DBGrid1 을 컨트롤 할 수 있어야 합니다.
답변 부탁드립니다.
  
1  COMMENTS
  • Profile
    이추형 2002.10.24 00:20
    디비그리드 스크롤예제입니다
    홍성락님께서 올려 놓으신건데 쭈욱 복사했습니다.
    참조하시기 바랍니다.

    unit Unit1;

    interface
    ...
      private
        { Private declarations }
        procedure MOUSEWHEELMessage(var Msg: TMsg; var Handled: Boolean);
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
        Application.OnMessage:= MOUSEWHEELMessage;
    end;
    procedure TForm1.MOUSEWHEELMessage(var Msg: TMsg; var Handled: Boolean);
    begin
       if Msg.Message = WM_MOUSEWHEEL then begin
       // DBGRID1에 대해
        if ActiveControl = TControl(DBgrid1) then begin      
           if Msg.wParam > 0 then begin
                //SendMessage(DBGrid1.Handle,WM_KEYDOWN,VK_UP,0);
                //SendMessage(DBGrid1.Handle,WM_KEYDOWN,VK_PRIOR,0);
                SendMessage(DBGrid1.Handle,WM_VSCROLL,SB_LINEUP,0);
                //Table1.Prior;
             end
             else if Msg.wParam < 0 then begin
                //SendMessage(DBGrid1.Handle,WM_KEYDOWN,VK_DOWN,0);
                //SendMessage(DBGrid1.Handle,WM_KEYDOWN,VK_NEXT,0);
                SendMessage(DBGrid1.Handle,WM_VSCROLL,SB_LINEDOWN,0);
                //Table1.Next;
             end;
             //DBGrid1.Refresh;
           end;
        end;

       // DBGRID2에 대해
       .....

      end;
    end;
    end.