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

C++빌더 Q&A
C++Builder Programming Q&A
[64238] 두개의 그리드 컨트롤 재질문 ㅜㅜ
빌더링 [] 1713 읽음    2011-04-25 22:04
에구 아래 이문제에 대해서 질문올렸다가 스스로 답을 찾아낸줄알고 적용했더니...
완전 에러였네요...

그래서 다시한번 도움을 청해봅니다.. ㅜㅜ 이런 비슷한 부분의 질문이나 예제가 검색이 힘드네요 에구

제가 폼위에 AdvStringGrid가 두개가 위아래로 있습니다.
둘다 똑같은 구조이죠 같은 컬럼 같은 테이블이죠...

그래서 위는 A 아래는 B라고 잡았습니다.

여기서 제가 하고싶은것은.... A에서 컨트롤 하는 것이 그대로 B도 적용되는것입니다.
그리고 B에서 컨트롤 하는것은 A에서 그대로 움직이구요...말인 즉슨..

A에서 마우스 휠을 죽 돌리면 FIX된 ROW는 그대로 있고 나머지 RowCount만큼 위아래로 움직이는데요.....
이 행동이 B도 같이 되는 것입니다. 그래서 A에서 특정 Col의 특정 Row에 셀선택이 되었을때...
B도 동일한 포커스가 되는것입니다. 물론 이건 제가 해결을 했는데...

문제점 1 :  마우스휠로 위아래 스크롤할떄는 같이 움직이지 않는다..
문제점 2 : 방향키로 그리드에서 움직였을때 선택된 Row는 같이 보여지나 스크롤이 같이 되지 않는다...

일단 제가 처리한 부분은

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::AdvStringGrid7SelectCell(TObject *Sender, int ACol, int ARow,
          bool &CanSelect)
{
    for (int i = 0; i<35; i++)
    {
        for (int j = 1; j < 20; j++)
        {
            AdvStringGrid7->Colors[j][i+2] = clGrayText;
            AdvStringGrid8->Colors[j][i+2] = clGrayText;
        }
    }

    for (int i = 0; i<35; i++)
    {
        AdvStringGrid7->Colors[ACol][i+2] = clAppWorkSpace;
        AdvStringGrid8->Colors[ACol][i+2] = clAppWorkSpace;
    }
    for (int i = 1; i<20; i++)
    {
        AdvStringGrid7->Colors[i][ARow] = clAppWorkSpace;
        AdvStringGrid8->Colors[i][ARow] = clAppWorkSpace;
    }
    AdvStringGrid7->Colors[ACol][ARow] = clWhite;
    AdvStringGrid8->Colors[ACol][ARow] = clWhite;

    for(int i=0; i<32; i++)
    {
        for(int j=0; j<19; j++)
        {
            if (AdvStringGrid7->Cells[19][i+2] == "1")
            for(int j=0; j<19; j++) AdvStringGrid7->Colors[j+1][i+2] = clYellow;

            if (AdvStringGrid8->Cells[19][i+2] == "1")
            for(int j=0; j<19; j++) AdvStringGrid8->Colors[j+1][i+2] = clYellow;
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AdvStringGrid8SelectCell(TObject *Sender, int ACol, int ARow,
          bool &CanSelect)
{
    for (int i = 0; i<35; i++)
    {
        for (int j = 1; j < 20; j++)
        {
            AdvStringGrid7->Colors[j][i+2] = clGrayText;
            AdvStringGrid8->Colors[j][i+2] = clGrayText;
        }
    }

    for (int i = 0; i<35; i++)
    {
        AdvStringGrid7->Colors[ACol][i+2] = clAppWorkSpace;
        AdvStringGrid8->Colors[ACol][i+2] = clAppWorkSpace;
    }
    for (int i = 1; i<20; i++)
    {
        AdvStringGrid7->Colors[i][ARow] = clAppWorkSpace;
        AdvStringGrid8->Colors[i][ARow] = clAppWorkSpace;
    }
    AdvStringGrid7->Colors[ACol][ARow] = clWhite;
    AdvStringGrid8->Colors[ACol][ARow] = clWhite;

    for(int i=0; i<32; i++)
    {
        for(int j=0; j<19; j++)
        {
            if (AdvStringGrid7->Cells[19][i+2] == "1")
            for(int j=0; j<19; j++) AdvStringGrid7->Colors[j+1][i+2] = clYellow;

            if (AdvStringGrid8->Cells[19][i+2] == "1")
            for(int j=0; j<19; j++) AdvStringGrid8->Colors[j+1][i+2] = clYellow;
        }
    }
}

이렇게 하여 서로 같은 라인과 선택된 셀은 처리를 햇는데 같이 스크롤 하는게 진짜 난감하네요 ㅜㅜ
마우스휠로 하였을때나...키로 움직였을때....스크롤을 어떻게 동기화 해야할까요 ㅜㅜ
한폼에 두 그리드에 동시에 SetFocus()는 안되더군요...
(SetFocus때문에 그리드에서 자동 스크롤이 되는거 같거든요...)
고수님의 조언 기다려봅니다

+ -

관련 글 리스트
64238 두개의 그리드 컨트롤 재질문 ㅜㅜ 빌더링 1713 2011/04/25
64242     [답변] 그리드의 Col과 Row 정성훈.해미 2034 2011/04/26
64245         Re:[답변] 질문 하나만 더 드려도 될까요? 빌더링 1118 2011/04/26
64254             Re:Re:[답변] 질문 하나만 더 드려도 될까요? 정성훈.해미 1073 2011/04/26
64256                 Re:Re:Re: 감사함을 표현할 길이 없네요 ㅜㅜ 빌더링 1307 2011/04/26
64243         Re:허걱 진짜진짜 감사합니다 ㅜㅜ 우헐~ 빌더링 1189 2011/04/26
64241     Re:두개의 그리드 컨트롤 재질문 ㅜㅜ 김상면 1220 2011/04/26
64244         Re:Re:정말 다행입니다 ㅜㅜ ㅎ 빌더링 1226 2011/04/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.