喫茶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 にうまく伝えるには
どうしたらよいでしょうか?




[35] Re:プリンタや用紙設定変更した後、TplTacPrev への反映のタイミング返信 削除
2004/11/15 (月) 23:06:51 Mr.XRAY
▼ みねまさん,こんちには.

とりあえず,以下の様にして逃げてみて下さい

OnBeforePageDrawまたは,OnFormShowイベント内で,

TacPrev_CustList.LabelWidth := 2600;

のコードを書きます.当分これでお願いします.みねまさんの書き方の
方がわかりやすいのですが,修正にはちょっと時間がかかりそうなので.
申し訳ありませんが.
(AC_ListPreviewExecute内の同コードは削除します)

[36] Re2:プリンタや用紙設定変更した後、TplTacPrev への反映のタイミング返信 削除
2004/11/16 (火) 00:50:29 みねま
▼ Mr.XRAYさん こんばんは
みねまです。

早速お返事していただきありがとうございます。
> ▼ みねまさん,こんちには.
>
> とりあえず,以下の様にして逃げてみて下さい
>
> OnBeforePageDrawまたは,OnFormShowイベント内で,


OnBeforePageDraw で設定するとうまくいきました。
ありがとうございます。
気付くべきでした、、まだまだです。

TplCustomPrev の SetPaperInfo メソッドを pubric に持ち上げて
プリンタ設定後に呼び出そうかな、とも思っていたのですが、
TplPrev 系のコンセプトからすると、それはまずいかな、と思いまして
尋ねたしだいです。

> のコードを書きます.当分これでお願いします.みねまさんの書き方の
> 方がわかりやすいのですが,修正にはちょっと時間がかかりそうなので.
> 申し訳ありませんが.


いえいえ、目的が達成できればいいので。

本当に Tplシリーズにはお世話になっています。
いつかお返しが出来るといいのですが、、、。

ありがとうございました。


[41] Re3:プリンタや用紙設定変更した後、TplTacPrev への反映のタイミング返信 削除
2004/11/16 (火) 17:51:36 Mr.XRAY
▼ みねまさん

> いつかお返しが出来るといいのですが、、、。

この掲示板で,今回のようにバグ報告することが十分お返しになって
いると思いますです.


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