喫茶XRAYトップページ
[1782]
ユーザー定義用紙の許容範囲の取得方法は?
返信
削除
2008/8/2 (土) 16:35:24
KSC
ご無沙汰しています。
最近、少しずつDelphi2007に移行し始めている今日この頃です。
(TMSSoftwareのコンポーネントも勉強中...)
(だいぶ)以前より開発していたアプリ(帳票フォームデザイナー)が、
社内で活用され始めた為、急ピッチで仕上げ作業を行っている最中です。
(plSetPrinterやplPrevを有難く使用させて頂いています。)
帳票フォームのデザイン時に当然、用紙サイズを設定するのですが、
(SetUserPaperで任意名の用紙定義を追加。)
そこで質問です。
ユーザー定義用紙の許容範囲(添付画像の青点線枠)を取得したいのですが、
方法が分かりません。
なぜかと言うと、
幅 : 175mm
長さ: 92mm
の用紙サイズを設定しようとすると長さの許容範囲外となり、SetUserPaper
を実行してもユーザー定義用紙は追加されません。
ユーザー定義用紙の許容範囲が取得できれば、SetUserPaperの実行前に
「許容範囲内で用紙サイズを設定して下さい!」とか幅と長さを入れ替えて
用紙向きを逆転させるなどの処理をソース側で提供できるからです。
何とぞアドバイスを宜しくお願い致します。
[1789]
Re:ユーザー定義用紙の許容範囲の取得方法は?
返信
削除
2008/8/2 (土) 21:12:51
Mr.XRAY
▼ KSCさん
> ユーザー定義用紙の許容範囲が取得できれば、SetUserPaperの実行前に
> 「許容範囲内で用紙サイズを設定して下さい!」とか幅と長さを入れ替えて
> 用紙向きを逆転させるなどの処理をソース側で提供できるからです。
ですよね.
え〜っと,どうやるんでしょう?
[1791]
Re:ユーザー定義用紙の許容範囲の取得方法は?
返信
削除
2008/8/2 (土) 21:31:01
Mr.XRAY
▼ KSCさん
> ユーザー定義用紙の許容範囲が取得できれば、
この,添付図の範囲値ですが,おそらく,各ドライバの固有の領域
(つまり拡張領域)で定義されている値ではないかと思います.
となると,メーカの技術資料がないと困難でしょうね.
OSが提供しているDevMode構造体の定義の中には,そのような値は
ないです.
DevModeの拡張領域の値を求めることは可能ですが,バイト単位でしか
意味がないことになります.
というのは,どこに何がどんな単位(WORDとかDWORDあるいは文字列なのか)
が不明で,しかもメーカというより,プリンタドライバによっても違う可
能性があるからです.
[1792]
Re2:ユーザー定義用紙の許容範囲の取得方法は?
返信
削除
2008/8/2 (土) 21:51:38
Mr.XRAY
▼ KSCさん
> この,添付図の範囲値ですが,おそらく,各ドライバの固有の領域
> (つまり拡張領域)で定義されている値ではないかと思います.
余談ですが,その当時すでに中村さんのNkPrinterがあったのに,何故
plSetPrinterを開発したかというと,各ドライバ固有の(拡張領域)の
設定や取得もしたかったからです.
これらの値は各ドライバで違う可能性があります.しかし,ドライバの
情報そのものを全てファイルに保存して読み出せは再現できる,という
考えがあったからです.そうすれば,それらのプロパティを直接コードで
読み書きできなくても,再現は可能となります.
ただ,今になって考えると,多くの人がそんなことは気にしていないよう
ですので,無駄な努力だったのかも知れません.
用紙サイズ,印刷方向,印刷部数ぐらいが設定,取得できれば十分だった
のかも知れません.
[1798]
Re3:ユーザー定義用紙の許容範囲の取得方法は?
返信
削除
2008/8/2 (土) 23:53:51
KSC
▼ Mr.XRAYさん
> 余談ですが,その当時すでに中村さんのNkPrinterがあったのに,何故
> plSetPrinterを開発したかというと,各ドライバ固有の(拡張領域)の
> 設定や取得もしたかったからです.
> これらの値は各ドライバで違う可能性があります.しかし,ドライバの
> 情報そのものを全てファイルに保存して読み出せは再現できる,という
> 考えがあったからです.そうすれば,それらのプロパティを直接コードで
> 読み書きできなくても,再現は可能となります.
>
> ただ,今になって考えると,多くの人がそんなことは気にしていないよう
> ですので,無駄な努力だったのかも知れません.
> 用紙サイズ,印刷方向,印刷部数ぐらいが設定,取得できれば十分だった
> のかも知れません.
でも、マスターのplSetPrinterやplPrevに出会ったおかげで私の
「印刷フォームデザイナー」は生まれ、他のユーザーの方の色々なアプリ
が生まれたのです。
これって、結構、重要な役割を果たしているコンポーネントだと思いますよ!
これからも頑張って下さい。
[1800]
Re4:ユーザー定義用紙の許容範囲の取得方法は?
返信
削除
2008/8/3 (日) 07:12:40
Mr.XRAY
▼ KSCさん
> これって、結構、重要な役割を果たしているコンポーネントだと思いますよ!
いや〜,そう言っていただけると嬉しいです.
Delphi2007,Vista対応,確認も早くしたいです.
ある程度見通しはつきはじめているんですが.
[1802]
Re5:ユーザー定義用紙の許容範囲の取得方法は?
返信
削除
2008/8/3 (日) 13:51:45
KSC
▼ Mr.XRAYさん
> いや〜,そう言っていただけると嬉しいです.
> Delphi2007,Vista対応,確認も早くしたいです.
> ある程度見通しはつきはじめているんですが.
Vista対応ですか... は〜っ ... 。
社内用に開発したアプリもVista対応させるかどうか悩んでいるところです。
「UAC」が、ネックとなる為、やはり修正が必要なのです。
当面はXPしか利用させないので時間はありますが、時期にやらねば...。
気が重い。
[1803]
UACと仮想化機能がVista導入のネックか
返信
削除
2008/8/4 (月) 05:24:34
Mr.XRAY
▼ KSCさん
> 社内用に開発したアプリもVista対応させるかどうか悩んでいるところです。
> 「UAC」が、ネックとなる為、やはり修正が必要なのです。
> 当面はXPしか利用させないので時間はありますが、時期にやらねば...。
前に宮さんが書いていますが,Vistaはビジネス向きではないような
気がします.
ちょうどWindows MEのようなマルチメディア関係向きでしょうか.
もちろん,マルチメディア関係がビジネスであればある意味でビジネス
用とはいえるかも知れませんが.
UACもそうですが,もう一つの難関は「仮想化機能」ではないかと
思います.
まだ少ししかテストしていませんが,結構やっかいそうです.
[1805]
Re:UACと仮想化機能がVista導入のネックか
返信
削除
2008/8/4 (月) 12:14:03
KSC
▼ Mr.XRAYさん
> 前に宮さんが書いていますが,Vistaはビジネス向きではないような
> 気がします.
> ちょうどWindows MEのようなマルチメディア関係向きでしょうか.
> もちろん,マルチメディア関係がビジネスであればある意味でビジネス
> 用とはいえるかも知れませんが.
私はソフト開発の他にビデオクリップ(社内用)の制作やロゴなどのデザインも
たまに行いますが、Vistaの必要性は感じません。
(ビデオクリップやロゴデザインはAdobe CreateSuite3でやっています。)
> UACもそうですが,もう一つの難関は「仮想化機能」ではないかと
> 思います.
> まだ少ししかテストしていませんが,結構やっかいそうです.
とりあえずUACに関しては、OS判別してXP以上はユーザー毎のマイドキュメント
配下に作業用フォルダを自動作成し、書き換えが必要なファイル類はそちらで
作業するようにソース修正して対応しています。
「仮想化機能」ですか ... 何も考えていませんでした。
[1806]
Re2:UACと仮想化機能がVista導入のネックか
返信
削除
2008/8/5 (火) 06:37:07
Mr.XRAY
▼ KSCさん
> 私はソフト開発の他にビデオクリップ(社内用)の制作やロゴなどのデザインも
> たまに行いますが、Vistaの必要性は感じません。
> (ビデオクリップやロゴデザインはAdobe CreateSuite3でやっています。)
おおっ,失礼.そういえば以前そのようなことを聞いたことがあったような.
> とりあえずUACに関しては、OS判別してXP以上はユーザー毎のマイドキュメント
> 配下に作業用フォルダを自動作成し、書き換えが必要なファイル類はそちらで
この方法がベターでしょうね.
[1797]
Re2:ユーザー定義用紙の許容範囲の取得方法は?
返信
削除
2008/8/2 (土) 23:44:00
KSC
▼ Mr.XRAYさん
> この,添付図の範囲値ですが,おそらく,各ドライバの固有の領域
> (つまり拡張領域)で定義されている値ではないかと思います.
> となると,メーカの技術資料がないと困難でしょうね.
> OSが提供しているDevMode構造体の定義の中には,そのような値は
> ないです.
>
> DevModeの拡張領域の値を求めることは可能ですが,バイト単位でしか
> 意味がないことになります.
> というのは,どこに何がどんな単位(WORDとかDWORDあるいは文字列なのか)
> が不明で,しかもメーカというより,プリンタドライバによっても違う可
> 能性があるからです.
「DevMode構造体」ですか? あっ、そういえば、会社にAPI関連の
Delphi書籍があったのを思い出しました。
会社に言ったら、久々に開いてみようかと思います。
しかし、OS提供では無かったんですね。
それぞれ仕様が異なるとなると「やっかい、やっかい」。
INCM/CMT
Cyclamen v3.82