안녕하세요..어린왕자입니다..
아~암..문제가 잘 안풀려 잠이 오는 군요..(딴 사람은 잠이 안오는뎅..^^)
암튼..
먼저 맛없는 소스를 먼저 올리겠습니다.
procedure TReportForm.Btn_DesignClick(Sender: TObject);
var
Option:TpreReportForm;
i:integer;
begin
Option:=TPreReportForm.Create(self); // 먼저 다른 유닉에 정의된 폼을 생성하기.
with Option do
begin
if showmodal=mrCancel then begin // 모달폼으로 보여줘서
// Cancel 버튼누르면 빠져나가기
free;
exit;
end;
frReport1.LoadFromFile('Untitled');
Page := frReport1.Pages[0];
for i:=0 to Panel1.componentcount-1 do // 여기서 문제
begin // Option.Panel1.Componentcount가
// 0이 나옵니다.
// 분명 8개의 체크박스를
// 포함하고 있는데
tmpCheck:=TCheckBox(Panel1.components[i]);
if not tmpCheck.Checked then begin
DeleteReportCom(tmpCheck.Name,Page);
if tmpCheck.Name='RT' then begin
DeleteReportCom('TitleMemo',Page);
DeleteReportCom('TimeMemo',Page);
DeleteReportCom('DateMemo',Page);
end
else if tmpCheck.Name='MD' then DeleteReportCom('LineMemo',Page)
else if tmpCheck.Name='PF' then DeleteReportCom('FootMemo',Page)
else if tmpCheck.Name='RS' then DeleteReportCom('SummaryRich',Page);
end;
end;
free;
end;
// 이하 생략~
end;
그니깐 질문의 요지가 뭐다면요..
다른 폼의 컨데이너성질의 컴포넌트의 Componentcount를 못 읽는 거냐는 것입니다..
귀신고깔 노릇입니다..
ComponentCount가 아니라 ControlCount를 써야해요.
ComponentCount는 자신이 소유한 객체의 숫자이고, ControlCount는 자식의 숫자예요.
Owner와 Parent의 차이쯤되죠. 대부분의 경우 컨트롤들의 Owner, Parent는 폼이 되지만
Panel과 같이 컨테이너컨트롤안에 있는 객체의 Parent는 그 컨테이너 객체(Panel)가
됩니다.
^^ 항상 즐코하세요.
어린왕자 wrote:
> 안녕하세요..어린왕자입니다..
> 아~암..문제가 잘 안풀려 잠이 오는 군요..(딴 사람은 잠이 안오는뎅..^^)
> 암튼..
> 먼저 맛없는 소스를 먼저 올리겠습니다.
>
>
> procedure TReportForm.Btn_DesignClick(Sender: TObject);
> var
> Option:TpreReportForm;
> i:integer;
>
> begin
> Option:=TPreReportForm.Create(self); // 먼저 다른 유닉에 정의된 폼을 생성하기.
>
> with Option do
> begin
> if showmodal=mrCancel then begin // 모달폼으로 보여줘서
> // Cancel 버튼누르면 빠져나가기
> free;
> exit;
> end;
>
>
> frReport1.LoadFromFile('Untitled');
> Page := frReport1.Pages[0];
>
>
> for i:=0 to Panel1.componentcount-1 do // 여기서 문제
> begin // Option.Panel1.Componentcount가
> // 0이 나옵니다.
> // 분명 8개의 체크박스를
> // 포함하고 있는데
> tmpCheck:=TCheckBox(Panel1.components[i]);
> if not tmpCheck.Checked then begin
> DeleteReportCom(tmpCheck.Name,Page);
> if tmpCheck.Name='RT' then begin
> DeleteReportCom('TitleMemo',Page);
> DeleteReportCom('TimeMemo',Page);
> DeleteReportCom('DateMemo',Page);
> end
> else if tmpCheck.Name='MD' then DeleteReportCom('LineMemo',Page)
> else if tmpCheck.Name='PF' then DeleteReportCom('FootMemo',Page)
> else if tmpCheck.Name='RS' then DeleteReportCom('SummaryRich',Page);
> end;
> end;
>
>
> free;
> end;
>
>
> // 이하 생략~
>
>
> end;
>
>
> 그니깐 질문의 요지가 뭐다면요..
> 다른 폼의 컨데이너성질의 컴포넌트의 Componentcount를 못 읽는 거냐는 것입니다..
> 귀신고깔 노릇입니다..