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
[56563] Re:tms 그리드가 이상하네요..
Starlet [starlet5] 1462 읽음    2009-04-01 11:43
GetCheckBoxState를 보면 bool __fastcall GetCheckBoxState(int ACol, int ARow, bool & state) 요렇게 정의되어 있습니다. state가 포인터입니다. 보통 결과값이 단순히 리턴값외에 여러개일때 이 방법을 씁니다.
GetCheckBoxState를 호출하면 state에 체크박스 상태를 저장시키고 리턴값으로 체크박스 유무를 리턴합니다.

bool State;
grid->GetCheckBoxState(1, i, &State);

이렇게 State의 주소를 넘겨주면 GetCheckBoxState함수는 State에 체크박스 상태를 저장해 줍니다. 그리고 리턴값으로 체크박스 유무를 알려줍니다.

소스는 이렇게 바뀌어야 겠죠.

AnsiString __fastcall TActionArrayForm::GetAddString()
{
     AnsiString result;
     bool IsChecked;

     for(int i=1; i<grid1->RowCount; i++)
     {
         grid1->GetCheckBoxState(1, i, &IsChecked);
         if (IsChecked)
         {
             result.cat_printf("%s;", grid1->Cells[2][i].c_str());
         }
     }
     ShowMessage(result);
     return result;
}


박진수 님이 쓰신 글 :
: AnsiString __fastcall TActionArrayForm::GetAddString()
: {
:     AnsiString result;
:     for(int i=1; i<grid1->RowCount; i++)
:     {
:         if(grid1->GetCheckBoxState(1, i, true)==true)
:         {
:             result.cat_printf("%s;", grid1->Cells[2][i].c_str());
:         }
:     }
:     ShowMessage(result);
:     return result;
: }
:
:
: 이게 소스구요...
:
: grid1->GetCheckBoxState(1, i, true) 이게 무조건 true값이 나오네요.
:
: 체크박스가 해제 되어 있는데도 불구하고...
:
: grid1->GetCheckBoxState(1, i, false) 이렇게 해도 true값이 나옵니다.
:
: 이거 왜 이러는지 아시는 분 있나요?
:
: 혹은 체크박스의 체크 여부를 알 수 있는 방법이라도 있나요?
:
: 자꾸 질문 해서 죄송합니다...

+ -

관련 글 리스트
56557 tms 그리드가 이상하네요.. 박진수 1295 2009/03/31
56563     Re:tms 그리드가 이상하네요.. Starlet 1462 2009/04/01
56564         Re:Re:답변 감사합니다. 박진수 2245 2009/04/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.