喫茶XRAYトップページ

[スレッド全体
]

[33] プリンタや用紙設定変更した後、TplTacPrev への反映のタイミング返信 削除
2004/11/15 (月) 17:52:35 みねま
Mr.XRAYさん、はじめまして
Tplシリーズ大変便利に利用させていただいてます。本当に便利ですね。
特にTplTacPrev の便利のよさにはほんとにビックリしました。
タックシールの印刷プログラムがあんなに簡単に出来るなんて、、、。

さて、TplTacPrev を利用していて、印刷前に用紙の設定を変更したものが、
反映されたりされなかったりする事があるので、どうすればいいのか教えて
いただきたいと思っています。

具体的には、
Form に TplTacPrev を二つ置いて、片方はA4横、もう一方はA4縦で
印刷しようとしています。(データセットは同じ)
用紙の切り替えは NKPrinter を利用しています。
plSetPrinter は利用せずに、デフォルトプリンターを利用するよう
にしています。
(#利用する場所によってプリンターが違うので通常使うプリンター
  を利用するようにしています)

実際のコーディングは以下のようにしています。

procedure TForm_CustTacPrint.AC_ListPreviewExecute(Sender: TObject);
begin
  NkPrinter.Orientation := nkOrLandScape;
  NkPrinter.ApplySettings;
  { IDEでLabelWidthを設定できないので、ページ設定変更後設定しなおす }
  TacPrev_CustList.LabelWidth := 2600;
  TacPrev_CustList.Preview;
end;

この場合、NkPrinter.ApplySetting を終わった時点では
plTacPrev(TacPrev_CustList) の PageWidth が変更されていないので、
TacPrev_CustList.LabelWidth := 2600; が変更されません。
(PageWidth=1998になっていて、LabelWidth=1998に設定される)

ただし、2回目以降のPreview では、上記のコードでうまくいきます。

プリンタの用紙の変更があったことを TplTacPrev にうまく伝えるには
どうしたらよいでしょうか?




[43] TplTackPrev の修正版UPしました.返信 削除
2004/11/17 (水) 00:12:19 Mr.XRAY
▼ みねまさんはじめ,ご利用の方々へ

> TacPrev_CustList.LabelWidth := 2600; が変更されません。

ご迷惑をおかけしました.先程修正版をUPしました.m(_ _)m
バージョン番号は,4.16となっています.よろしく.

忘れていました.印刷プレビューTplPrevもUPしていますので,お
手数ですが,こちらも新しいバージョン4.52にして下さい.追加
のイベントがありますので.


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