일반적으로 동적생성과 동일하게 하시면 됩니다.
단. GridPanel이 디자인타임에 생성하든 동적으로 생성하든
ColumnCollection 과 RowCollection에 아이템이 Default로 두개씩 자동 생성되어있습니다.
그리고 각 아이템에는 Value라는 값이 있는데.. 이값이 화면에 나타나는 영역(% 퍼센트) 입니다.
기본적으로 생성된 아이템값이 50%씩 잡고 있기 때문에..
만약 동적으로 ColumnCollection을 추가하더라도 화면에 나타나지 않게 됩니다.
즉
1) 동적으로 GridPanel 을 생성
2) ColumnCollection을 하나 동적 생성 추가 ==> ColumnCollection이 3개가 됨
3) ColumnCollection의 각 Item의 Value를 전체 100% 를 기준으로 나눠서 값을 다시 할당
4) 그리고 각 GridPanel의 Cell에 컨트롤 생성해서 올림
다음은 동적생성 샘플입니다.
참고하세요
//1) GridPanel 동적 생성
TGridPanel *NewGridPanel=new TGridPanel(this);
NewGridPanel->SetBounds(10,10,400,200);
NewGridPanel->Parent=this;
NewGridPanel->OnClick=GridPanel1Click;
//2) ColumnCollection 하나 추가
NewGridPanel->ColumnCollection->Add(); //
//3) 각 ColumnCollection의 아이템의 화면표시 영역(퍼센트) 변경
for(int i=0;iColumnCollection->Count;i++)
{
NewGridPanel->ColumnCollection->Items[i]->Value=33; //33% 씩 표시되도록 함
}
//4) 각 Grid-Cell에 버튼을 생성해서 올림
// Parent를 GridPanel로 생성하면 차례대로 Cell 위치가 결정됩니다.
for(int i=0;i<6;i++)
{
TButton *btn=new TButton(this);
btn->Caption="NewGrid_Btn - "+IntToStr(i+1);
btn->Parent = NewGridPanel;
btn->SetBounds(0,0,100,50);
}
그럼..
만나바 님이 쓰신 글 :
: GridPanel 을 동적으로 여러개 생성해야되서 집적 코드로 ColumnCollection을 설정해주어야하는데;;
: 어떤 문법으로 가로 세로를 설명해주어야 할지..모르겠습니다.
: http://docwiki.embarcadero.com/Libraries/XE4/en/Vcl.ExtCtrls.TGridPanel.ColumnCollection
: 들어가봐도 예제 소스도 없어서....
:
: 혹시 코드아시는분 좀 알려주세요 ㅠㅠ
|