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
[25672] Re:StringGrid에서 한셀에다가 ComboBox넣기
윤종원 [cyoon] 1974 읽음    2003-05-19 18:13
허접초보 님이 쓰신 글 :
: 말이 어려운가여..
: 음...StringGrid의 특정셀을 클릭하면
: 그 셀이 ComboBox 형식으로 변하는거져..
: 안되는건가여?


int g_nCol, g_nRow; //  그리드의 위치정보
// 콤보 박스를 안 보이게 한다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    ComboBox1->Top = - 100;
    ComboBox1->Left = - 100;
}
// 셀을 선택하면
void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
    TRect rect;
    // 셀의 위치를 얻어 온다
    rect = StringGrid1->CellRect(ACol,ARow);
    // 셀의 위치는 그리드의 위치이므로
    // 그리드의 좌표를 더해준다.
    ComboBox1->Top = StringGrid1->Top +  rect.Top;
    ComboBox1->Left = StringGrid1->Left + rect.Left;
    ComboBox1->Width = rect.Width();
    ComboBox1->SetFocus();
}
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
    // 변경된 값을 그리드로
    StringGrid1->Cells[g_nCol][g_nRow] = ComboBox1->Text;
    // 콤보 숨기기
    ComboBox1->Top = - 100;
    ComboBox1->Left = - 100;
    // 그리드로 포커스를 옮긴다.
    StringGrid1->SetFocus();
}

소스 한번 보시고 어려운거는 없습니다.
콤보에서 선택을 했을 경우에 셀 위치에다가 그 정보를 입력하면 끝입니다.

+ -

관련 글 리스트
25670 StringGrid에서 한셀에다가 ComboBox넣기 허접초보 1120 2003/05/19
25672     Re:StringGrid에서 한셀에다가 ComboBox넣기 윤종원 1974 2003/05/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.