喫茶XRAYトップページ

[スレッド全体
]

[1782] ユーザー定義用紙の許容範囲の取得方法は?返信 削除
2008/8/2 (土) 16:35:24 KSC
ご無沙汰しています。

最近、少しずつDelphi2007に移行し始めている今日この頃です。
(TMSSoftwareのコンポーネントも勉強中...)

(だいぶ)以前より開発していたアプリ(帳票フォームデザイナー)が、
社内で活用され始めた為、急ピッチで仕上げ作業を行っている最中です。
(plSetPrinterやplPrevを有難く使用させて頂いています。)

帳票フォームのデザイン時に当然、用紙サイズを設定するのですが、
(SetUserPaperで任意名の用紙定義を追加。)
そこで質問です。
ユーザー定義用紙の許容範囲(添付画像の青点線枠)を取得したいのですが、
方法が分かりません。
なぜかと言うと、
 幅 : 175mm
 長さ: 92mm
の用紙サイズを設定しようとすると長さの許容範囲外となり、SetUserPaper
を実行してもユーザー定義用紙は追加されません。

ユーザー定義用紙の許容範囲が取得できれば、SetUserPaperの実行前に
「許容範囲内で用紙サイズを設定して下さい!」とか幅と長さを入れ替えて
用紙向きを逆転させるなどの処理をソース側で提供できるからです。

何とぞアドバイスを宜しくお願い致します。

[1791] Re:ユーザー定義用紙の許容範囲の取得方法は?返信 削除
2008/8/2 (土) 21:31:01 Mr.XRAY
▼ KSCさん

> ユーザー定義用紙の許容範囲が取得できれば、

この,添付図の範囲値ですが,おそらく,各ドライバの固有の領域
(つまり拡張領域)で定義されている値ではないかと思います.
となると,メーカの技術資料がないと困難でしょうね.
OSが提供しているDevMode構造体の定義の中には,そのような値は
ないです.

DevModeの拡張領域の値を求めることは可能ですが,バイト単位でしか
意味がないことになります.
というのは,どこに何がどんな単位(WORDとかDWORDあるいは文字列なのか)
が不明で,しかもメーカというより,プリンタドライバによっても違う可
能性があるからです.

[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