マスター、皆さんこんばんは。
junro と申します。
環境
WindowsXP Pro SP2, Delphi7 Ent
plTackPrev を利用させていただいておりますが
アドバイスをいただきたい事があります。
プレビューが必要ない場合に、頁選択をさせるために
TPrintDialogで選択させてから印刷を行ったところ、
// 前略
if PrintDialog1.Execute then
begin
// 情報獲得
plSetPrinter1.PrinterName := Printer.Printers[Printer.PrinterIndex];
plTackPrev1.PrintFromPage := PrintDialog1.FromPage;
plTackPrev1.PrintToPage := PrintDialog1.ToPage;
// 印刷
plTackPrev1.Print;
end;
// 後略
PrintDialog1.FromPage = 1
PrintDialog1.toPage = 1
の場合だと全件印刷されてしまいます。
1以外ならば指定した頁だけが印刷されます。
中をのぞいたところ、plPrev.pasのTCustomplPrev.SetPageCountで
PrintToPageを設定しているようなので、ここを直せば良いと
思うのですが、どうもよくわかりません(汗
APage の値が初期化されないまま利用されることがあるようなので
とりあえず下記のようにして使用していますが、他に影響は無いも
のでしょうか?
どなたかアドバイスをお願いいたします。
//=============================================================================
// 総頁数と印刷終了頁の設定
// 逐次表示方式で使用.先読方式では描画ルーチンの最後で決まる
//=============================================================================
procedure TCustomplPrev.SetPageCount(const Value: Integer);
var
APage : Integer;
begin
APage := 1; // ←ここを追加した
if Value<=0 then exit;
if FDrawType=dtCont then exit;
if FPrintToPage<>1 then APage:=FPrintToPage;
FPageCount := Value;
FPrintToPage := 1;
if APage<>FPrintToPage then FPrintToPage:=APage;
end;
|