C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[47750] PageHeight,NewPage()
맛스타 [] 793 읽음    2007-01-14 12:10
//--------------StringGrid에 값을 채움.
void __fastcall TForm1::FormShow(TObject *Sender)
{
   StringGrid1->RowCount = 20;  <===요값을 늘려보아도 PageHeight는 그대로 입니다. PageHeight = 3344나옴.
   StringGrid1->ColCount = 8;
   short int i,j;
   for(i=1; i<=StringGrid1->RowCount; i++)
   {     
          for(j=1; j<=StringGrid1->ColCount; j++)
          {
           StringGrid1->Cells[j][i]="999.1111";           
           }
    }
}


//-----------------프린터출력버튼(StringGrid의 내용을 출력)
void __fastcall TForm1::cmd_PrintClick(TObject *Sender)
{     
  if(!Printdialog1->Execute())
     return;  
  else{  
        Printer()->Canvas->Font->Size = 40;
        Printer()->Canvas->Font->Name = "바탕체";
        TPrinter *p = Printer();
        p->BeginDoc();
        TCanvas *c = p->Canvas;
        HDC dc = c->Handle;
        int XPI = GetDeviceCaps(dc,LOGPIXELSX);     
        int YPI = GetDeviceCaps(dc,LOGPIXELSY);     
        SetMapMode(dc,MM_ANISOTROPIC);            
        SetWindowExtEx(dc,1000,1000,NULL);           
        SetViewportExtEx(dc,XPI,YPI,NULL);             

        int i,j,h,n;
        AnsiString S("텍스트 인쇄");
        h = p->Canvas->TextHeight(S);    //"텍스트인쇄"를 기준으로 높이.
        n = p->Canvas->TextWidth(S);    //"텍스트인쇄"를 기준으로 너비.

         for(i=1; i<StringGrid1->RowCount; i++)
         {
              for(j=1; j<StringGrid1->ColCount; j++)
              {
                S = StringGrid1->Cells[j][i];
                p->Canvas->TextOutA(n*j,i*h,S);
              }

         }
       
        // if(p->PageHeight > 6688)  <== PageHeight요넘이 변화가 없네요. StringGrid의 행이 늘어나더라도.
        p->NewPage();                 
        p->EndDoc();
    }

}

제가 하려는 건 StringGrid에 행수가 많을 경우 1장 이상으로 계속적으로 출력하려는건데요.
게시판을 이리저리 검색하다가 PageHeight를 기준으로 해서 NewPage()의 실행을 하라 하더라구요.
제 짧은 지식으로  "StringGrid에 행수가 늘면 PageHeight값이 올라가겠지"라고 판단한 후 이리저리 실험해봤는데
StringGrid의 행수가 적든 많든 간에 PageHeight값이 똑같더라구요.

어떻게 저 PageHeight를 조절해야하고 또 기준으로 삼을 수 있을까요?
즉, StringGrid의 Row값이 많아 한장 이상으로 나오면 다음장을 어떻게 나오게 할 수 있을까요?
고수님들의 답변 부탁드립니다.(--)(__)

+ -

관련 글 리스트
47750 PageHeight,NewPage() 맛스타 793 2007/01/14
47752     Re:PageHeight,NewPage() 886 2007/01/14
47766         Re:Re:PageHeight,NewPage() 맛스타 942 2007/01/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.