Q&A

  • [질문]스트링그리드 두개의 스크롤바를 동시에 움직이게 하기...

안녕하세요..

 

마우스 휠로 움직이게 하는 예제는 발견을 해서... 적용을 했는데..

 

마우스로 직접 스크롤을 붙잡고... A 그리드든 B 그리드든 위 아래로 움직이면.. 다른 그리드에서 같이 움직이며..

 

서로 같은 데이터가 표시 되게 하고 싶거든요..

 

왼쪽은  중요한 데이터 5칸이 표시되고.. 오른쪽은 그 중요 데이터의 금액들이 항목별로 정리되어 쭈욱 나오는데.. 많아요..

 

그래서.. 왼쪽 그리드의 스크롤을 마우스로 선택해서 움직일때가 문제가 되더군요..

 

방법이 없을까요?

 

부탁드립니다..

 

3  COMMENTS
  • Profile
    zeliard 2011.03.27 09:15

    Window Procedure를 이용해서 scroll메시지를 다른쪽에 보내세요.

    아래는 예제입니다. 

    
    type
      TForm1 = class(TForm)
        GridA: TStringGrid;
        GridB: TStringGrid;
        procedure FormCreate(Sender: TObject);
      private
        EventRaiser: TObject;
        GridA_OrgWndProc, GridB_OrgWndProc: TWndMethod;
      public
        procedure GridA_WndProc(var Message: TMessage);
        procedure GridB_WndProc(var Message: TMessage);
      end;
     
    implementation
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Col, Row: Integer;
    begin
      for Row := 0 to 64 - 1 do
      begin
        for Col := 0 to 64 - 1 do
        begin
          GridA.Cells[Col, Row] := IntToStr(Row) +'*'+ 
                IntToStr(Col) +'='+IntToStr(Col*Row);
          GridB.Cells[Col, Row] := IntToStr(Row) +'*'+ 
                IntToStr(Col) +'='+IntToStr(Col*Row);
        end;
      end;
     
      EventRaiser := nil;
      GridA_OrgWndProc := GridA.WindowProc;
      GridB_OrgWndProc := GridB.WindowProc;
      GridA.WindowProc := GridA_WndProc;
      GridB.WindowProc := GridB_WndProc;
    end;
     
    procedure TForm1.GridA_WndProc(var Message: TMessage);
    begin
      if (Message.Msg = WM_VSCROLL) and (EventRaiser = nil) then
      begin
        EventRaiser := GridA;
        GridB.Perform(Message.Msg, Message.WParam, Message.LParam);
        EventRaiser := nil;
      end;
      GridA_OrgWndProc(Message);
    end;
     
    procedure TForm1.GridB_WndProc(var Message: TMessage);
    begin
      if (Message.Msg = WM_VSCROLL) and (EventRaiser = nil) then
      begin
        EventRaiser := GridB;
        GridA.Perform(Message.Msg, Message.WParam, Message.LParam);
        EventRaiser := nil;
      end;
      GridB_OrgWndProc(Message);
    end;

     

  • Profile
    완전한사랑 2011.03.31 23:02

    답변 감사드립니다..

    늘 도움 주셔서 정말 감사합니다.

    많은 도움이 되었습니다.. ^^

  • Profile
    쓔렉 2011.04.19 04:00
    오저도필요햇엇는데감사힙니다ㅋ
      • 백록화
        2011.05.09 20:27
        어떤 모델인지는 모르겟지만 메뉴얼에 제어코드가 있지 않을까요? 
      • 지럴배기
        2013.08.28 23:29
        인터멕 제품을 핸들링 하는 언어는 IPL 입니다. 제프라에 ZPL이 있듯이....   IPL 관련 문서를 찾아서...
      • 앙팡
      • 2011.05.04 14:47
      • 7 COMMENTS
      • /
      • 0 LIKES
      • 백록화
        2011.05.04 18:44
         MessageBox(0, PChar(compareCount), '',MB_ICONSTOP);compareCount 가 Integer 형인데요... PChar &...
      • jiniya
        2011.05.04 18:46
        쿼리가 문제가 아니라 밑에 메시지 띄우는 부분이 문제일듯 합니다.   DB손댄지가 오래되긴 했는데......
      • jiniya
        2011.05.04 18:47
        헉 댓글달고 보니 똑같은걸 백록화님이 벌써 ㅡㅡ;;;
      • 백록화
        2011.05.05 03:47
        ㅎㅅㅎ 죄송...
      • 철이
        2011.05.04 23:12
            SQL.Add('SELECT COUNT(*) TOTAL_CNT FROM TOJANG WHERE TJ_COMPANY = ''24'''); ...
      • 백록화
        2011.05.05 03:49
        흠.. 오래전에 그런현상이 있긴 했었는데..아마도 기억에 TQuery 와 Paradox 를 사용할때 정확하진 않은데 ...
      • 사나이
        2011.05.13 04:02
        ㄳㄳ 좋은정보 얻어가요
      • 앙팡
      • 2011.04.29 18:02
      • 1 COMMENTS
      • /
      • 0 LIKES
      • 구창민
        2011.06.11 02:21
        피곤하시겠지만, 미들티어 역할을 하는 통신 어플을 만드셔야 할 것 같습니다.
      • sung
      • 2011.04.29 16:05
      • 1 COMMENTS
      • /
      • 0 LIKES
      • 구창민
        2011.06.11 02:23
        아래 링크에 관련 내용이 있네요.. 참고하세요.. https://forums.embarcadero.com/message.js...
      • 백록화
        2011.04.29 01:37
        TIdFTP.UseMLIS 속성이 기본적으로 False 로 되어 있는데 True 로 하시면 될껍니다.
      • 백록화
        2011.04.21 21:05
        퍼왔슴돠..http://www.swissdelphicenter.ch/torry/showcode.php?id=170uses WinSock ;// Function&nb...
      • 완전한사랑
        2011.05.20 19:51
        답변 감사드립니다.. 포기 하고 있었는데.. 함 시도해 보겠습니다..  정말 감사합니다.. ^^
      • 완전한사랑
        2011.06.03 19:35
        윈도우7에거 WinSock.dll 이 뭔가 잘못되었는지.. 오류가 나네요..아무래도.. 윈도우98이나 95에서만 작...
      • 구창민
        2011.06.11 02:14
        어떤 오류가 나는지 알려주셔야 해당 답글이 올라오지 않을까요? 혹여 질문드리지만,  uses W...
      • 비돈
      • 2011.04.20 00:37
      • 1 COMMENTS
      • /
      • 0 LIKES
      • 비돈
        2011.04.20 02:36
        자답입니다. source\wind32\rtl\win 에서 windows.dcu를 지우고 다시 컴파일 하니 됩니다.
      • 쓔렉
      • 2011.04.18 18:48
      • 4 COMMENTS
      • /
      • 0 LIKES
      • zeliard
        2011.04.18 19:26
        뭘 하고 싶으세요? 이름으로 컴포넌트 찾기? 아님 TEdit를 모두 찾아서 뭔가 하기???
      • 홍성락
        2011.04.18 19:35
        이런식으로 하부 컴퍼넌트 까지 검색하시려는 건가요. 그래서 처음에 호출시 Read(Form1); 폼이름을 주거나...
      • 쓔렉
        2011.04.18 22:42
        아 너무감사합니다.소스가 이해가 안됐었는데..계속보고 해보니까 이해가가네요. 제겐 재귀란 언어가..너무...
      • zeliard
        2011.04.18 20:13
        홍성락님께서 알려주신 방법대로 하시면 되는데요... var  ParamList: TStringList;  ... &nbs...
      • zeliard
        2011.04.15 18:56
        TDatabase컴포넌트를 쓰세요. LoginPrompt를 False로 해놓으시면 됩니다.
      • 중후지제
        2011.04.15 19:43
        델파이 5.0이고요.며칠 전까지는 안나오던 소스였는데, 갑자기 나오기 시작했습니다. 
      • 중후지제
        2011.04.16 04:02
        며칠 전까지만 해도 안나오던 프롬프트가 왜 나오게 된건지 알 수 없을까요?고친게 없는데 프롬프트가 ...
      • 중후지제
        2011.04.16 04:16
          qrySQL, qryTemp: TQuery;  dbBDB, dbFDB : TDatabase;  sSaleDate, sClientCD, sTran...
      • zeliard
        2011.04.16 09:09
      • 지나가는행인
        2011.04.12 16:51
        165 = 32 + 32 + 32 + 32 + 32 + 5 입니다... 그러므로... 32가 5개 나머지가 5   Integer 형의 몫은 ...
      • 따따부따
        2011.04.12 17:50
        유용한 답변 감사합니다.
      • Mark
      • 2011.04.11 03:13
      • 1 COMMENTS
      • /
      • 0 LIKES
      • zeliard
        2011.04.11 07:04
        Q1) 누수가 됩니다. Create시 생성한 ClassA가 해제가 안되니까요. 누수를 방지할려면 property A의 set me...
      • 땜쟁이
      • 2011.04.08 23:37
      • 2 COMMENTS
      • /
      • 0 LIKES
      • zeliard
        2011.04.09 01:21
        1.네 2. 엑셀(?) Access DB말하는것 같은데... 데이터량이 많다면 비추입니다. Firebird나 Interbase 쓰세...
      • 백록화
        2011.04.09 02:55
        1. OS / 하드웨어 야 나중에 문제되면 다른것으로 갈아타셔도 되고요. 고정아이피면 좋지만 아니라도 큰 문...
      • 백록화
        2011.03.29 07:47
        서버는 웹서버 로 구축하시면 됩니다. 흔히 쓰이는것은 IIS 나 아파치 가 있겟고요... FTP를 사용하시려면 ...
      • 이즈니
        2011.04.01 01:31
        < URLDownloadToFile을 이용한 다운로드 예 > URLDownloadToFile을 제대로 사용하시려면 -----...
      • zeliard
        2011.03.27 09:15
        Window Procedure를 이용해서 scroll메시지를 다른쪽에 보내세요. 아래는 예제입니다.  ty...
      • 완전한사랑
        2011.03.31 23:02
        답변 감사드립니다.. 늘 도움 주셔서 정말 감사합니다. 많은 도움이 되었습니다.. ^^
      • 쓔렉
        2011.04.19 04:00
        오저도필요햇엇는데감사힙니다ㅋ
      • 수인아빠
        2011.03.24 21:46
        다행히 THREAD로 처리했습니다....
      • 쓔렉
      • 2011.03.22 04:51
      • 4 COMMENTS
      • /
      • 0 LIKES
      • zeliard
        2011.03.22 18:31
        서점에 가셔서 자료구조란 책을 찾아보세요. 잘 나와 있어요. 도서관에서 오래된 책을 찾으시면 대부분 파...
      • 쓔렉
        2011.03.23 19:32
        아 제가 가지고있는책에는 select가 없길래^^하하; 감사합니다^^
      • 백록화
        2011.03.22 20:55
        찾아보면 델파이/파스칼 로 구현된것도 많죠.. 뭐 일단 자료구조 관련 서적을 보시는게 좋을듯 합니다.http...
      • 쓔렉
        2011.03.23 19:31
        네 감사해요^^