델파이 고수님들께 도움을 요청합니다
현 델파이 프로젝트를 진행하는중 다음과 같은 난제에 접하여 도움을 요청합니다
다름이 아니고 예)와 같이 페이지 control에서 페이지 갯수를 자유롭게 만들고 싶습니다
예)
--------- --------- --------- ---------
| a지점 | | b지점 | | c지점 | | d지점 | - - - - - - n개
--------- --------- --------- ---------
위의 예처럼 실행시 사업부별 지점갯수를 산출후 지점갯수만큼 page를 만들고
싶습니다
그리고 지점 페이지마다 동일한 dbgrid를 놓고 해당지점의 data를 조회하여야 하는데
dbgrid를 하나만 design하고 매 page마다 놓는 방법을 알려주세요
도움을 부탁드립니다
행복하십시요
제 메일id는 leemtj@netsgo.com입니다
또 다른 방법을 알켜드리죠.. 약간의 편법입니다만...
먼저 TTabSheet형을 가진 변수를 하나 설정하시고 폼의 OnCreate에서 그 변수를
초기에 선택된 탭시트를 가리키게 합니다. 그리고 페이지컨트롤의 페이지가 변경
될때마다 DBGrid를 선택된 탭시트로 바꾸어주면 똑같이 사용하실 수 있겠죠..
그 후 DBGrid의 내용은 바꾸시면 되구요...
아래 내용을 참조하세요...
type
TForm1 = class(TForm)
...
procedure PageControl1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
Sheet: TTabSheet; // <== 선언
...
end;
......
procedure TForm1.FormCreate(Sender: TObject);
// 현재 DBGrid를 가지고 있는 시트를 지정
begin
Sheet := PageControl1.Pages[PageControl1.ActivePageIndex];
end;
procedure TForm1.PageControl1Change(Sender: TObject);
begin
// 예전의 시트에서 DBGrid를 삭제하고 현재의 시트로 이동
Sheet.RemoveControl(DBGrid1);
Sheet := PageControl1.Pages[PageControl1.ActivePageIndex];
Sheet.InsertControl(DBGrid1);
...... // <== 현재의 시트에 맞게 DBGrid의 내용을 설정
end;