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
[65864] Re:Re:Re:StringGrid의 한 row에 ComboBox를 쭉 삽입하고 싶어요..
장성호 [nasilso] 2050 읽음    2012-01-04 20:02
음...

위 방식의 문제점 은

1.  만약 StringGrid의 Row나 Col이 많아서
가로나 또는 세로로 Scroll을 했을 경우에 어떻게 해야하죠?
ComboBox의 위치를 모두 옮겨줘야 할것 같은데....

2. Grid의  Column-Width를 변경하게되는 경우는 어떠게 하죠?
   이때도 변경되는 Column을 포함해 그 뒷쪽으로 모든 ComboBox 의 위치를 재조정해 줘야 하겠죠?

3. Row가 엄청나게 많은 경우(수천/수만?)
    ComboBox의 위치값이 ???? 수만 or 수십만?

==============================
대안으로는...

1 . ComboBox를 지원하는 서드파트 컴포넌트를 사용(유료면 구매하여)하는 방법이 있구요

2. ComboBox를 지원하는 StringGrid를 만드는 방법이 있구요

3. 꼼수인데.. ComboBox는 딱 1개만 가지고 있고,.. 값을 수정할때만 Select된 Cell에 ComboBox를 배치하여
    선택하도록 만들고
    Edit하지 않을때는 콤보막스 모양(사각형과 오른쪽끝에 내리는 화살표버튼)을 Cell영역에 그려주는 방법

   등이 있을것 같습니다.


1번을 추천합니다.


그럼..


갈라파고스인 님이 쓰신 글 :
: 예.. 조언 감사드립니다.
: 제가 그정도 실력이 안되어서요...
: 찾아보니.. 아래와 같이 하니.. 되네요... 이중 포인터... 이런곳에 쓰는 거였군요..ㅠ.ㅠ
: 진짜 되는건지는 잘 모르겠습니다.
:
: TComboBox **ComboBox2;
: ComboBox2 = new TComboBox*[i+1];
: for(int j=0; j < i ; j++)
: {
:     ComboBox2[j] = new TComboBox(this);
:     ComboBox2[j]->Parent    = StringGrid1;
:     ComboBox2[j]->Style     = csDropDownList;
:     TRect rect;
:     rect = StringGrid1->CellRect(2+j,2);
:     ComboBox2[j]->Top       = rect.Top;
:     ComboBox2[j]->Left      = rect.Left;
:     ComboBox2[j]->Width     = rect.Width();
:     ComboBox2[j]->Height    = rect.Height();
:     ComboBox2[j]->Visible   = true;
:          .......
: }
: 이런식으로 하니까...
:
:
: 장성호 님이 쓰신 글 :
: : OnDrawCell 이벤트에
: : 그림으로 Cell에다가 ComboBox모양 그려 넣으세요.
: :
: : 실제로 TComboBox객체 생성해서 넣는것은 거의 불가능합니다.
: :
: : --------------------------------------------------------
: :
: : 그리고 아래 코드는 문법에 문제가 있네요
: :
: : 다음과 같은 코드를 원하시는것은 아닌가 하는 생각이 드네요
: :
: : pComboBox[i]= new TComboBox(this);
: :
: :
: : 그럼..
: :
: : 갈라파고스인 님이 쓰신 글 :
: : : 안녕하세요..
: : :
: : : String grid에 다수의 ComboBox를 넣어야 합니다. 그래서 아래와 같이...
: : :
: : :
: : : TComboBox *pComboBox = new TComboBox[i+1];
: : :
: : :
: : : 해보았는데요..
: : :
: : : default constructor to initialize array element of type TComboBox라고 에러 메세지가 나오네요...
: : :
: : : 콤포넌트는 array로 동적 할당을 못하는지요...
: : :
: : : 기초가 없이 하는일이라.. 보시기에 좀 어이없어도... 조언 부탁드립니다.
: : :
: : : 감사합니다.

+ -

관련 글 리스트
65858 StringGrid의 한 row에 ComboBox를 쭉 삽입하고 싶어요.. 갈라파고스인 1355 2012/01/04
65860     Re:StringGrid의 한 row에 ComboBox를 쭉 삽입하고 싶어요.. 장성호 1465 2012/01/04
65861         Re:Re:StringGrid의 한 row에 ComboBox를 쭉 삽입하고 싶어요.. 갈라파고스인 1445 2012/01/04
65864             Re:Re:Re:StringGrid의 한 row에 ComboBox를 쭉 삽입하고 싶어요.. 장성호 2050 2012/01/04
65871                 Re:Re:Re:Re:StringGrid의 한 row에 ComboBox를 쭉 삽입하고 싶어요.. 갈라파고스인 1726 2012/01/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.