喫茶XRAYトップページ

[スレッド全体
]

[15] plTackPrintのPrintメソッドの動作返信 削除
2004/11/1 (月) 22:56:25 Mr.XRAY 〔HomePage
タックシール印刷コンポーネント(plTackPrint)について,以下の
質問メールがありました.

plTackPrintで,プレビューしないで直接印刷するメソッドPrintを実
行しても,1頁しか印刷しないというものです.コードは,

procedure TForm1.BitBtn8Click(Sender: TObject);
begin
  {.... 略 ...}
  DM.Query1.Open;

  plSetPrinter2.CallSetting;
  plTackPrint2.Execute;
 
  if plPrevForm18.PrintDialog1.Execute then
    plPrev2.Print;

end;

[16] Re:plTackPrintのPrintメソッドの動作返信 削除
2004/11/1 (月) 22:57:40 Mr.XRAY 〔HomePage
この件について以下の様にお答えしました.

  どうもうまく行きません.TplPrevを新しい形式にした際にか,
  または,元々問題があったのかも知れません.
 
申し訳ありませんが,以下の感じのコードで逃げて下さいませんか.
なるべく,速い時期に新しいTplPrevPrevの方に移行して頂けますよ
うお願い致します.

しかし,参りました.(苦笑)

type
    TTempPrev= class (TplTackPrint);

//====================================================================
//  Queryの結果を実行
//====================================================================
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
     Query1.Open;
     try
       plPrev1.Title:='表形式の印刷テスト';
       plTackPrint1.Execute;

       {頁数を取得}
       plPrev1.PageCount:=TTempPrev(plTackPrint1).GetPageCount;
       {PrintFromPageとPrintToPageは必要であればPrintDialogで設定}
       if PrintDialog1.Execute then begin
         plPrev1.PrintFromPage:=PrintDialog1.FromPage;
         {PrintToPageはplPrev1.PageCountより大きければ頁数分だけ印刷}
         plPrev1.PrintToPage:=PrintDialog1.ToPage;
         plPrev1.Print;
       end;
     finally
       Query1.Close;
     end;
end;

[追加・注]
このバグは,Printメソッド内で,印刷の総頁数が取得できないこと
によるものです.そこで,その対策として,最初に頁数を取得する
コードを追加しています.

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82