喫茶XRAYトップページ

[スレッド全体
]

[1034] Re:終了時に登録確認を出すとプレビューが消える返信 削除
2006/12/9 (土) 15:25:26 Andy
自己レスです。
OnFormCloseQueryで先に処理したらうまくいきました。


[1035] Re2:終了時に登録確認を出すとプレビューが消える返信 削除
2006/12/9 (土) 20:42:30 Mr.XRAY
▼ Andyさん

> OnFormCloseQueryで先に処理したらうまくいきました。
お疲れさまでした。
OnCloseは閉じてしまいますからね。
不思議なもので、人や掲示板に聞いたり、質問すると、ひらめいて解決してし
まうことが多々あるんですよね。
これにこりずにまたどうぞ。

[1036] Re3:終了時に登録確認を出すとプレビューが消える返信 削除
2006/12/10 (日) 19:54:59 Andy
▼ Mr.XRAYさん

> お疲れさまでした。
> OnCloseは閉じてしまいますからね。
> 不思議なもので、人や掲示板に聞いたり、質問すると、ひらめいて解決してし
> まうことが多々あるんですよね。
> これにこりずにまたどうぞ。


ありがとうございました。
またまたわからない店が出来ました。
サンプルEnterFormで用紙リスト入れてユーザー定義や用紙を
出すようにして、用紙を変更するにはどうすればいいんでしょうか
色々やってみましたが、今ひとつ解決に至っておりません。
プレビューの用紙サイズが変わりません。

[1037] プレビュー画面で用紙サイズ等を変更(逐次表示方式)返信 削除
2006/12/10 (日) 22:23:21 Mr.XRAY
▼ Andyさん

> サンプルEnterFormで用紙リスト入れてユーザー定義や用紙を
> 出すようにして、用紙を変更するにはどうすればいいんでしょうか


TplPrevのサンプル[EnterForm]ですね.
これは逐次表示方式ですので,以下の方法できます.

plPrev1のBtnOptionプロパティのboPrinterSetBtnをTrueにします.
すると,プレビューすると[プリンタ設定]ボタンが表示されます.
このボタンのクリックイベントを作成します.

procedure TEnterForm.PrinterSetBtnClick(Sender: TObject);
begin
     //継承元のコードを実行
     inherited;
     //保存する場合は以下のコードを追加
     plPrev1.plSetPrinter.SaveToFile('PrinterSetting.plv');
end;

これだけです.また上のコードで設定を保存し,プレビューの時にその設定
を使用したい場合は,plPrev1のOnFormShowイベント内で読出します.

procedure TEnterForm.plPrev1FormShow(Sender: TObject);
begin
     plPrev1.Title:='郵便払込取扱票入力画面';

     //現実のアプリではデータベース等からの読出しに相当
     Edit1.Text:='31500';
     Edit2.Text:='ボーランドジャパン株式会社';
     Edit3.Text:='151-8533';
     Edit4.Text:='東京都渋谷区笹塚1-50-1';
     Edit5.Text:='笹塚NAビルディング';
     Edit6.Text:='□□□□ソフト株式会社';
     Edit7.Text:='□□ □';
     Edit8.Text:='03-1234-5678';

     //払込用紙の大きさは横180.0mm縦115.0mm
     MyPaperWidth :=1800;
     MyPaperHeight:=1150;

     //保存したプリンタの設定を読出す
     plPrev1.plSetPrinter.LoadFromFile('PrinterSetting.plv');
     //用紙の表示サイズと同じユーザ定義用紙を作成
//   plPrev1.plSetPrinter.SetUserPaper
//                        ('払込用紙',MyPaperWidth,MyPaperHeight);

       //表示幅も無効にする
//     plPrev1.ViewWidth :=MyPaperWidth;
//     plPrev1.ViewHeight:=MyPaperHeight;

     //描画ルーチン指定
     plPrev1.ProcName :=DrawTest;
     //入力開始位置にフォーカスをセット
     ActiveControl:=Edit1;
     //このフォームを表示するのでShowModalメソッドは不要
end;

また,プレビューフォームにボタン等を配置して設定する場合は,再表示の後,
設定後のプリンタのプロパティ値を

plPrev1.Display(表示頁番号);
plPrev1.plSetPrinter.GetPrinterInfo; //(引数なし)

のようにして,取得してから保存します.


[1038] Re:プレビュー画面で用紙サイズ等を変更(逐次表示方式)返信 削除
2006/12/13 (水) 09:43:19 Andy
▼ Mr.XRAYさん

コードまで書いていただきありがとうございました。
プリンターセットの設定をコンボやエディットで変更して
プレビューボタンで変更とした場合うまくいかなかったので
(自分のやり方がまずいかもしれませんが)、又、色々やってまして
結局、FormPanel2サンプルを参考にし、plSetPrinterとplPrev1をそのつど
作成し、プリンターセットルーチンに渡すようにしました。
これでなんとか、変更できるようになりました。
どうも、アドバイスをありがとうございました。(感謝!)


>
> TplPrevのサンプル[EnterForm]ですね.
> これは逐次表示方式ですので,以下の方法できます.
>
> plPrev1のBtnOptionプロパティのboPrinterSetBtnをTrueにします.
> すると,プレビューすると[プリンタ設定]ボタンが表示されます.
> このボタンのクリックイベントを作成します.
>
> procedure TEnterForm.PrinterSetBtnClick(Sender: TObject);
> begin
>      //継承元のコードを実行
>      inherited;
>      //保存する場合は以下のコードを追加
>      plPrev1.plSetPrinter.SaveToFile('PrinterSetting.plv');
> end;
>
> これだけです.また上のコードで設定を保存し,プレビューの時にその設定
> を使用したい場合は,plPrev1のOnFormShowイベント内で読出します.
>
> procedure TEnterForm.plPrev1FormShow(Sender: TObject);
> begin
>      plPrev1.Title:='郵便払込取扱票入力画面';
>
>      //現実のアプリではデータベース等からの読出しに相当
>      Edit1.Text:='31500';
>      Edit2.Text:='ボーランドジャパン株式会社';
>      Edit3.Text:='151-8533';
>      Edit4.Text:='東京都渋谷区笹塚1-50-1';
>      Edit5.Text:='笹塚NAビルディング';
>      Edit6.Text:='□□□□ソフト株式会社';
>      Edit7.Text:='□□ □';
>      Edit8.Text:='03-1234-5678';
>
>      //払込用紙の大きさは横180.0mm縦115.0mm
>      MyPaperWidth :=1800;
>      MyPaperHeight:=1150;
>
>      //保存したプリンタの設定を読出す
>      plPrev1.plSetPrinter.LoadFromFile('PrinterSetting.plv');
>      //用紙の表示サイズと同じユーザ定義用紙を作成
> //   plPrev1.plSetPrinter.SetUserPaper
> //                        ('払込用紙',MyPaperWidth,MyPaperHeight);
>
>        //表示幅も無効にする
> //     plPrev1.ViewWidth :=MyPaperWidth;
> //     plPrev1.ViewHeight:=MyPaperHeight;
>
>      //描画ルーチン指定
>      plPrev1.ProcName :=DrawTest;
>      //入力開始位置にフォーカスをセット
>      ActiveControl:=Edit1;
>      //このフォームを表示するのでShowModalメソッドは不要
> end;
>
> また,プレビューフォームにボタン等を配置して設定する場合は,再表示の後,
> 設定後のプリンタのプロパティ値を
>
> plPrev1.Display(表示頁番号);
> plPrev1.plSetPrinter.GetPrinterInfo; //(引数なし)
>
> のようにして,取得してから保存します.


[1040] Re2:プレビュー画面で用紙サイズ等を変更(逐次表示方式)返信 削除
2006/12/13 (水) 20:13:20 Mr.XRAY
▼ Andyさん

> プリンターセットの設定をコンボやエディットで変更して
> プレビューボタンで変更とした場合うまくいかなかったので


今やってみました.バグですね.
印刷の時の印刷頁関係を修正した時にチェックしていなかったようです.
修正します.しばらく時間を下さい.
マイッタ!!


[1042] Re3:プレビュー画面で用紙サイズ等を変更(逐次表示方式)返信 削除
2006/12/14 (木) 10:14:46 Andy
▼ Mr.XRAYさん

そうでしたか、自分がわからないからと思っていました。
まあ、設定画面ですから今のままでも使っています。
以前、VBで作っていたときに文化オリエント製の
印刷用ActiveXで高速プレビューの機能がありましたが
plPrevでは搭載できないでしょうか、まあVBのときは
ページを指定してプレビューが出来ないので、ページめくりが
高速でないと目的のところまでいけなかったですが。
もし、このコンポーネントが有料であっても購入していたと
思います。(よく出来ていますので!)


> 今やってみました.バグですね.
> 印刷の時の印刷頁関係を修正した時にチェックしていなかったようです.
> 修正します.しばらく時間を下さい.
> マイッタ!!


[1044] Re4:プレビュー画面で用紙サイズ等を変更(逐次表示方式)返信 削除
2006/12/15 (金) 09:15:07 Mr.XRAY
▼ Andyさん

> 以前、VBで作っていたときに文化オリエント製の
> 印刷用ActiveXで高速プレビューの機能がありましたが
> plPrevでは搭載できないでしょうか、まあVBのときは


http://www.grapecity.com/japan/support/database/P1_142.htm
の持つ機能ですね。全くやる気はありません (^_^)。
拙作の印刷プレビュー機能は、職場の簡単な、頁数のすくない帳票類のため
に開発したので、今の機能で十分なんです。でもクエリーの実行は少し遅い
ですね。確かに。
描画のメソッドをAPIだけで、またスレッドを使用して裏で実行するように
構成すれば、ある程度は速くなることも可能でしょうけど。
(最初のページを表示している間に他のページのプレビューを作成するとか)

スミマセンネ。


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