|
안녕하세요
질문요지는 잘 모르겠지만 대충 그리드의 컨트롤이 스크롤되거나
할 경우에 절대위치이기때문에 그대로 있는 문제 인것 같은데..
TStringGrid의 OnTopLeftChanged이벤트에서 해당 셀의 렉트를 구하여
변경될때마다 자동으로 위치가 변경되게 코딩해야 합니다.
그러나 문제는 이럴경우에 폼 스크롤바 문제가 생기게 될 수 있습니다.
다음의 코딩은.. 그리드의 Fixed영역에 패널을 올리는 코딩이거든요.
예를 들어서 Fixed영역에 패널을 올려넣고
OnTopLeftChanged이벤트에 아래와 같은 코딩을 합니다.
for(int i=xDGrid1->LeftCol ; i<xDGrid1->LeftCol+xDGrid1->VisibleColCount+1 ; i++) {
rect = xDGrid2->CellRect(i, 0);
...
이러면 그리드의 스크롤이 변경되거나 위치변경을 해도 보이는 Fixed영역 Title만큼 돌면서
패널을 생성하거나 위치를 조정할수 있죠..
즐프하세요
뱀파이어 님이 쓰신 글 :
: StringGrid에 ProgressBar와 CheckBox를 삽입하려고 합니다..
:
: 아래에 있는 Q/A를 참고하여 삽입까지는 성공을 했는데요..
:
: 가령 StringGriddml RowCount가 100이면...
:
: ProgressBar를 RowCount 10까지만 삽입을 합니다..
:
: RowCount가 100이라면 물론 스크롤바가 생기겠죠..
:
: StringGrid를 스크롤하면 ProgressBar도 같이 움직이면서 화면 아래로 스크롤이 되면
:
: 사라져야 하는데.. 그렇지 않고..
:
: 계속 제일 윗줄부터 10개가 나타나 있네요...
:
: 어떻게 하면 이 컴포넌트들이 같이 스크롤이 될까요??
:
:
:
: <<ProgressBar 삽입하는 소스입니다..>>
:
: TProgressBar *pProgressBar = new TProgressBar(this);
: pProgressBar->Parent = StringGrid1;
:
: TRect rect;
: rect = StringGrid1->CellRect(3,1);
: pProgressBar->Top = rect.Top;
: pProgressBar->Left = rect.Left;
: pProgressBar->Width = rect.Width();
: pProgressBar->Height = rect.Height();
:
:
|