|
제가 dll에 사용할 폼을 만들었는데요.
PageControl은 폼디자인 시에 pgcPage라는 이름으로 이미 만들었구요.
그위에 TabSheet를 동적생성하고 그 위에 다시 StringGrid를 동적생성했습니다.
그리고 나서 StringGrid에 column이나 row를 하나씩 추가해서 여러개(충분하게)를 만들었는데
스크롤바가 생기지 않습니다.
대체 어찌된 일일까요?
예전에 실행파일로 만든게 있어서 소스를 그대로 긁어썼는데
예전 실행파일에서는 스크롤바가 생기구요. 새로 만든 dll에서는 스크롤바가 안생깁니다.
아래는 관련 소스입니다.
BOOL TMyReports::AddPage(AnsiString title){
TTabSheet *sht = NULL;
TStringGrid *sg = NULL;
// tabsheet 생성
sht = new TTabSheet(this);
sht->PageControl = pgcPage;
sht->Caption = title;
sg = new TStringGrid(sht);
sg->Parent = sht;
sg->Align = alClient;
sg->DefaultRowHeight = 17;
sg->ScrollBars = ssBoth;
sg->RowCount = 1;
sg->ColCount = 1;
m_strgrid[m_NumPage] = sg; // m_strgrid는 전역변수
m_sheet[m_NumPage] = sht; // m_sheet도 전역변수
m_NumPage++; // 이것도 전역변수
return TRUE;
}
//---------------------------------------------------------------------------
BOOL TFGReports::AddCol(int pageID, const char* title){
if (pageID < 0 || pageID >= m_NumPage) return FALSE;
if (strlen(title) < 1) return FALSE;
TStringGrid *sg = m_strgrid[pageID];
int numCol = (sg->ColCount)++;
if (sg->ColCount == 2){
sg->FixedCols = 1;
sg->Cells[0][0] = "No.";
}
sg->Cells[numCol][0] = title;
return TRUE;
}
//---------------------------------------------------------------------------
BOOL TFGReports::AddRow(int pageID){
if (pageID < 0 || pageID >= m_NumPage) return FALSE;
TStringGrid *sg = m_strgrid[pageID];
int numRow = (sg->RowCount)++;
if (sg->RowCount == 2){
sg->FixedRows = 1;
sg->Cells[0][0] = "No.";
}
sg->Cells[0][numRow] = numRow;
sg->Row = numRow;
return TRUE;
}
|