|
허접초보 님이 쓰신 글 :
: 말이 어려운가여..
: 음...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();
}
소스 한번 보시고 어려운거는 없습니다.
콤보에서 선택을 했을 경우에 셀 위치에다가 그 정보를 입력하면 끝입니다.
|