▼ 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; //(引数なし)
のようにして,取得してから保存します.
|