喫茶XRAYトップページ

[スレッド全体
]

[1100] 印刷方向設定について返信 削除
2007/2/12 (月) 20:23:00 順三
 順三と申します。
有用なコンポーネントをご提供頂きありがとうございます。

 早速ですが、plSetPrinter と plPrev の組み合わせで、印刷プレビュー
し、ユーザにはプレビューフォームの印刷ボタンから印刷させるプログラム
を組んでいます。
概略以下のようにしております。
  plSetPrinter1.PrinterNumber := -1;
  plSetPrinter1.SetOrientation(poLandscape); //横

  plPrev1.BeginDoc;
   ・・・以下省略

ここで、プレビューは横で表示されるのですが、プリントするとプリンタ設定
で縦がデフォルトになっている場合(つまりデフォルトを横に変えない限り)
縦方向に印刷されてしまいます。いろいろ試した結果、どうも通常使用する
プリンタが、NetBiosで共有されているプリンタの場合に起きるようです。
(通常使用するプリンタがネットワークプリンタで、plPrevFormの印刷ボタン
からプリンタを変更し、NetBios共有プリンタに出力した場合は横方向で印刷
されます。)
何か、対応方法や、設定項目などにつき、アドバイスをお願い致します。
                       よろしくお願い致します。




[1101] Re:印刷方向設定について返信 削除
2007/2/12 (月) 23:51:26 Mr.XRAY
▼ 順三さん

拙作コンポのご利用ありがとうございます。
質問の現象は、仕様というか、バグというか、発生する場合があります。
この修正はちょっとややこしいのでまだ変更していません。

この現象は、TplPrevがplSetPrinterを認識する時期的なことによって発生
するようです。
例えばFormCreateの段階で、既にTplPrevがTplSetPrinterを認識してしまって
てる場合に

>   plSetPrinter1.PrinterNumber := -1;
>   plSetPrinter1.SetOrientation(poLandscape); //横
>
>   plPrev1.BeginDoc;
>    ・・・以下省略


としても、plSetPrinterの設定は無効となってしまいます。
そこで、例えば

   plPrev1.plSetPrinter.PrinterNumber:=-1;
   plPrev1.plSetPrinter.SetOrientation(poLandscape);

とした場合どうなるか試してみて下さい。
また、plPrev1のオブジェクト・インスペクタでplSetPrinterを空にするとか

  plSetPrinter1.PrinterNumber := -1;
  plSetPrinter1.SetOrientation(poLandscape); //横
  plPrev1.plSetPrinter:=plSetPrinter1;

なども実験して下さいませんか。

この現象の修正は、いつかはやらなければいけないと思っています。
申し訳ありませんが、よろしくお願いします。



[1102] Re2:印刷方向設定について返信 削除
2007/2/13 (火) 00:03:03 Mr.XRAY
> この修正はちょっとややこしいのでまだ変更していません。

この修正はDelphi6以降であれば、割と簡単にできるのですが、Delphi5の
開発で拙作コンポを利用されている方がいるので、かなり悩んでいます。


[1103] Re3:印刷方向設定について返信 削除
2007/2/13 (火) 22:36:30 順三
▼ Mr.XRAYさん
> > この修正はちょっとややこしいのでまだ変更していません。
>
> この修正はDelphi6以降であれば、割と簡単にできるのですが、Delphi5の
> 開発で拙作コンポを利用されている方がいるので、かなり悩んでいます。


返事が遅れてすいません。アドバイスありがとうございます。
今手元に環境がないので、明日アドバイスいただいた事項を実験し、
ご報告いたします。  ありがとうございました。

ちなみに、私の開発環境は、D2006とD7です。D2006のコンポのインストール
方法などは、Mr.XRAYさんのこのサイトを参考にさせていただきました。
コンポだけでなく、貴重な情報ありがとうございます。


[1104] Re4:印刷方向設定について返信 削除
2007/2/13 (火) 23:34:25 Mr.XRAY
▼ 順三さん

> 返事が遅れてすいません。アドバイスありがとうございます。
> 今手元に環境がないので、明日アドバイスいただいた事項を実験し、


いえいえ気にしないで下さい.なしのつぶての方もいますから(笑).

ところで,告白しますと,利用されている方々には大変申し訳ないのですが,
この動作仕様は,明らかに設計ミスです.
とにかに騙して利用して頂くしかありません.


[1105] Re5:印刷方向設定について返信 削除
2007/2/14 (水) 23:23:45 順三
▼ Mr.XRAYさん
>
> ところで,告白しますと,利用されている方々には大変申し訳ないのですが,
> この動作仕様は,明らかに設計ミスです.
> とにかに騙して利用して頂くしかありません.


 本日、アドバイスいただいた事項を試してみましたが、うまくいきません
でした。ん〜、何かよい方法はないものでしょうか。
とてもきれいに印刷できるので、大変満足していますし、他の開発者にも
好評です。

 コロンブスの卵でもよいので、何か方法はないでしょうか。



[1106] Re6:印刷方向設定について返信 削除
2007/2/15 (木) 00:01:00 Mr.XRAY
▼ 順三さん

お手数かけて申し訳ありません.
ところで,
印刷プレビュー制御コンポ TplPrev
プリンタ設定コンポ TplSetPrinter
はどこに配置してあるのでしょうか.

プレビューフォームあるいは,プレビューフォームを呼出す親のフォームで
しょうか.
また,プレビューフォームを生成(Create)するのはどのタイミングでしょうか.
[自動生成]か[選択可能なフォーム]のどちらでしょうか.
それによって,TplPrevにTplSetPrinterの設定が反映されるタイミングが違って
きます.




[1107] Re7:印刷方向設定について返信 削除
2007/2/15 (木) 22:49:38 順三
▼ Mr.XRAYさん
> 印刷プレビュー制御コンポ TplPrev
> プリンタ設定コンポ TplSetPrinter
> はどこに配置してあるのでしょうか.
>
> プレビューフォームあるいは,プレビューフォームを呼出す親のフォームで
> しょうか.
> また,プレビューフォームを生成(Create)するのはどのタイミングでしょうか.
> [自動生成]か[選択可能なフォーム]のどちらでしょうか.
> それによって,TplPrevにTplSetPrinterの設定が反映されるタイミングが違って
> きます.
>


 コンポは、プレビューを呼び出す親のフォームに配置しています。
すいません。[自動生成]か[選択可能なフォーム]かは、よく分かりません。
D2006では、ソース表示をみても、プロジェクトのプロパティを見ても
出てこないので...(実力ないのがバレバレですね)。この辺の変更方法も
教えていただけますでしょうか。
 設定反映のタイミングについてもご教示下さい。またテストしてみたいと
思いますので、よろしくお願い致します。


[1108] Re8:印刷方向設定について返信 削除
2007/2/15 (木) 23:04:02 Mr.XRAY
▼ 順三さん

>  設定反映のタイミングについてもご教示下さい。またテストしてみたいと
> 思いますので、よろしくお願い致します。


明日,サンプルコードを考えてアップしたいと思います.
お急ぎでしょうが,お待ち頂けますか.

[1109] Re9:印刷方向設定について返信 削除
2007/2/16 (金) 00:09:46 順三
▼ Mr.XRAYさん
> 明日,サンプルコードを考えてアップしたいと思います.
> お急ぎでしょうが,お待ち頂けますか.


 助かります。ありがとうございます。
 お手数をおかけいたしますが、よろしくお願い致します。


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