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
[64833] Re:Re:Re:Re:ComboBox 초기화 질문이요~ 추가사항
문경재 [] 2537 읽음    2011-07-19 11:29
초기에 똑같이 A~Z까지 넣어놓고

cbBStart1 콤보박스가 변경될때
cbBEnd1 콤보박스를 클리어하고
cbBStart1 선택된것부터 26개를 넣네요 C를 선택하면 C~Z,?,?<-이런식으로 두개가 추가될듯

cbBEnd1->ItemIndex 는 해당 콤보박스의 인덱스를 보여주기때문에 C로선택된후

ADD버튼을 눌렀을때
cbBStart1->ItemIndex = 0; A로 감
cbBEnd1->ItenIndex = 0;  C부터 있기때문에 C로 감

이런현상이 생기는거네요

void __fastcall TMainForm::cbBStart1Change(TObject *Sender)
: {
:     int iStartIdx = cbBStart1->ItemIndex;
:     cbBEnd1->ItemIndex = iStartIdx ;
: }
이렇게 바꾸시던지
Add버튼을 누를때
cbBEnd1->Clear();
for(int i = 0 ; i < cbBStart1->Count ; i++)
{
   cbBEnd1->Items->Add(cbBStart1->Items->Strings[i]);
}
cbBStart1->ItemIndex = 0;
cbBEnd1->ItenIndex = 0; 
이렇게 하시면 원래대로 돌아가겠네요








김동석 님이 쓰신 글 :
: void __fastcall TMainForm::InitBlockPanel(void)
: {
:     int i;
:     char cValue;
:     AnsiString strTmp;
:     AnsiString strPrefix,strBuffer;
:
:     cbBStart1->Items->BeginUpdate();
:     cbBEnd1->Items->BeginUpdate();
:
:     cbBStart1->Items->Clear();
:     cbBEnd1->Items->Clear();
:     for(i = 0; i < 26; i++)
:     {
:         cValue = 'A'+i;
:         strTmp.sprintf("%c",cValue);
:
:         cbBStart1->Items->Add(strTmp);
:         cbBEnd1->Items->Add(strTmp);
:     }
:
:     cbBStart1->Items->EndUpdate();
:     cbBEnd1->Items->EndUpdate();
:
:     cbBStart1->ItemIndex = 0;
:     cbBEnd1->ItemIndex = 0;
:
:     strPrefix="";
: ------------------------------------------------------------------
: void __fastcall TMainForm::cbBStart1Change(TObject *Sender)
: {
:     int iStartIdx = cbBStart1->ItemIndex;
:     int i;
:     char cValue;
:
:     AnsiString strTmp;
:
:     cbBEnd1->Items->BeginUpdate();
:
:     cbBEnd1->Items->Clear();
:
:     for(i = iStartIdx; i < 26; i++)
:     {
:         cValue = 'A'+i;
:         strTmp.sprintf("%c",cValue);
:         cbBEnd1->Items->Add(strTmp);
:     }
:
:     cbBEnd1->Items->EndUpdate();
:     cbBEnd1->ItemIndex = 0;
: }
: ---------------------------------------------------------------------
: ComboBox에 A~Z까지 목록에 뜨게 설정해두었습니다.
:
: cbBStart1 값을 c로 하면 cbBEnd1 값이 c부터 시작하게끔 하였습니다.
:
: 그래서 마지막에 Add할 시에 두 값이 초기값으로 가기위해
:
: cbBStart1->ItemIndex=0;
: cbBEnd1->ItemIndex=0;
:
: 을 명령해주었습니다.
:
: 그 결과 cbBStart1은 초기값인 A로 정확히 값이 변경되었으나
:
: cbBEnd1은 C 로 이동이 되었습니다.
:
: cbBEnd1 초기값이 cbBStart1 설정값으로 설정되어있는거같습니다.;;;;
:
: 이 때 cbBEnd1 값을 A로 이동하게 하는 법을 알고싶습니다. ㅠㅠ
:
:
: 이게 안된다면
:
: cbBStart1 값이 C로 지정되었을 때,  cbBEnd1 값은 C부터 시작하게 되는데
:
: 이때 목록을 눌렀을때 A부터 뜨게 가능한지 알고싶네요...이게 더 힘들꺼같지만;;
:
:
: 사진파일 첨부하였습니다.
:
:
:
: 문경재 님이 쓰신 글 :
: : 콤보박스 클리어를 말씀하시는건가요??
: : cbBStart1->Clear();
: :
: : 답변달고 다시 읽어보니 클리어가 아니네요
: : cbBEnd1->ItemIndex=0;
: : 를쓰시면 cbBEnd1 콤보박스도 초기값으로 돌아가실건데
: :
: : 그후에
: : cbBStart 를 따라가는 함수에 들어가는것 같네요
: :
: : 전체적인 소스를 봐야 알것 같은데요;
: :
: : 김동석 님이 쓰신 글 :
: : : 김동석 님이 쓰신 글 :
: : : : 안녕하세요
: : : :
: : : : c++ builder2007 Rad Studio 를 사용중입니다
: : : :
: : : : 리스트 목록에서 리스트를 골라 콤보박스를 이용해 add 버튼으로 항목을 추가해서 리스트목록을 추가하는 형식인데
: : : :
: : : : add 버튼이 눌렸을때 콤보박스를 초기값으로 바꿀수있는 방법을 알고싶습니다....
: : :
: : :
: : : cbBStart1->ItemIndex=0;
: : :
: : : 이걸 쓰니 초기화가 되더군요
: : :
: : : 콤보박스 명칭을 cbBStart1 cbBEnd1 cbBStart2 cbBEnd2 이런식으로 했습니다
: : :
: : : 문제는 cbBEnd 값이 cbBStart 값을 따라가게 설정되어
: : :
: : : cbBEnd1->ItemIndex=0;
: : :
: : : 를 써도 초기값으로 돌아가지않고 cbBStart1 값이 설정됐던 값으로 돌아가더군요
: : :
: : : 이걸 어찌 해야 될까요
: : :
: : : 전체 소스가 필요할까요?

+ -

관련 글 리스트
64813 ComboBox 초기화 질문이요~ 김동석 2270 2011/07/14
64823     Re:ComboBox 초기화 질문이요~ 추가사항 김동석 1714 2011/07/15
64829         Re:Re:ComboBox 초기화 질문이요~ 추가사항 문경재 2060 2011/07/18
64831             Re:Re:Re:ComboBox 초기화 질문이요~ 추가사항 김동석 1835 2011/07/18
64833                 Re:Re:Re:Re:ComboBox 초기화 질문이요~ 추가사항 문경재 2537 2011/07/19
64834                     감사합니다ㅠ-ㅠ드디어해결이되었네요ㅠ 김동석 1726 2011/07/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.