喫茶XRAYトップページ

[スレッド全体
]

[9919] Re:プリンタ設定コンポーネントの開発返信 削除
2016/5/13 (金) 23:19:11 KON
>実力というか,スキルというか,知識というか,その差は歴然としていました.

私もXRAY様のコードを見ると愕然とする事が今でも多々あるのですが^^;
実力のある方のコードは、もはや理解できないレベルのコードもあり、
お笑い芸人サンドイッチマンさんの「ちょっと何言ってんのかわからない」のセリフがピッタリ合う
物もあったりします^^;
※ 私のスキルが未熟な為ですよ(汗

帳票印刷は私も過去に中村様のサイトを参考に(Delphi掲示板でリンクを貼って頂いた方が居ました)
行った事があります。

(1)
印刷といっても大きなTBitmapをローカルで用意し、それに必要な画像や文字を描画、
スクロールボックスに動的に作成したTImageを配置し、そのTImageの大きさに合わせたStretchコピーを
行ってプレビューさせるという方法でした。
スクロールボックス内のTImageが動的生成なのは、ページ数がいくつあるか判らない、
また、動的に作成されたTImageはマウスホイールで拡大・縮小できる様にする為、
1ページのプレビューがウインドウサイズを超える場合がある為でした。
内部TBitmapとTimageでかなりメモリを消費しますので、何百枚のプレビューは不可能でしたが(と思われる)
最大でも10ページ位だろうという事でそういう風になりました。
肝心の印刷処理は、中村様のサイトを参考にさせてもらいました。

(2)
また、別な印刷処理では、
内部にTRichEditを生成、そのTRichEditに画像と文字を描画、
DelphiのTRichEditは、標準では画像を貼り付けられない為、ネットから貼り付けられる
魔法の様なコードを拝借して組み込みました(汗
内部で持たせたTRichEditの全ての画像や文字を全選択し、
クリップボードの内容をTStreamに退避してから、クリップボードに転送、
Windowsのワードパッドを起動し、ワードパッドにクリップボードから貼り付け、
その後に退避していたデータをクリップボードを復帰させるというw
システマチックかつ七面倒な事を行った事があります。
※ 当時、私のスキルが未熟な為、この様な事しか思いつかなかったのです(白目
   ワードパッドの起動方法や、ワードパッド内のTRichEditハンドルの取得方法はHalbow様の
   テクニックを参照しました。
ワードパッドに転送された画像と文字はそのまま印刷できますし、
保存してMicrosoft Wordで読み込めば、罫線を引くなど好きな様に編集可能になります。


(1)のやり方は、後日編集不可能な為、決まりきっている印刷物に向いてますが、
描画処理をゴリゴリ書けば綺麗なレイアウトで印刷できます。
(2)のやり方は、後日編集が可能な為、とりあえずデータが欲しい、
文章フォーマットは各自用意してあるので、オペレータが自由に触りたいという場合向けでした。

印刷に関しては、QuickReportやPDF出力などによる方法も考慮しましたが、
PDF出力はプリンタ出力先をPDFに指定できるソフトがあり、興味はあったのですが断念。
ドロー的な印刷に興味はあるのですが、まだ手も付けていない状態です。

話が長くなってすみません。浅知恵的な事を書いていたら笑ってやって下さい^^;


[9920] Re2:プリンタ設定コンポーネントの開発返信 削除
2016/5/13 (金) 23:49:01 KON
読み返してみるよ所々に日本語が変なのがありますね(汗

お許しを

[9921] Re2:プリンタ設定コンポーネントの開発返信 削除
2016/5/14 (土) 00:41:07 Mr.XRAY
▼ KONさん

> 私もXRAY様のコードを見ると愕然とする事が今でも多々あるのですが^^;

ワハハハッ.それはですね.おそらく気のせいです.ハイ.
私のサイトの記事は「難解」ですので...


[9923] Re3:プリンタ設定コンポーネントの開発返信 削除
2016/5/14 (土) 01:07:37 KON
▼ Mr.XRAYさん

> ワハハハッ.それはですね.おそらく気のせいです.ハイ.
> 私のサイトの記事は「難解」ですので...


いえ、そういう意味の愕然という訳ではありません^^;
よく調べていらっしゃいますし、Tips等はよくわかりやすく書かれています。
私が未熟なもので^^;
タイプミスも多いし、紛らわしい書き方をするおっさんなのでごめんなさい。


[9924] Re4:プリンタ設定コンポーネントの開発返信 削除
2016/5/14 (土) 08:10:04 Mr.XRAY
▼ KONさん

> よく調べていらっしゃいますし、Tips等はよくわかりやすく書かれています。

いや〜,そう言われると嬉しいですね.
タイプミスは,私も同じです.誤字脱字の名人です.ハイ.

ところで,あの頃,印刷プレビューのような機能のコンポを公開している方が
何人かいました.私ものその中のどなたかとメールのやりとりしたことがあります.
KON さんの印刷プレビュー処理の方法興味ありますね.
今は公開されていないのですか ?


[9925] Re5:プリンタ設定コンポーネントの開発返信 削除
2016/5/15 (日) 17:00:04 KON
▼ Mr.XRAYさん
▼ Mr.XRAYさん

>KON さんの印刷プレビュー処理の方法興味ありますね.

プレビューに限らず、私のソフトの作り方は大体こうです。
@ 設計時に大まかな(固定される物)のコンポーネントを配置する。
A 数が判らない物は動的にCreateして配置する。
B 最大数が決まっている物は起動時にCreateして適切なプロパティや
   メソッドの定義をする。
コンポーネント化すれば良い部分もありますけれど、
それは極めて汎用性の高い部分だけしています。
でも後日、どのように要望を出されるか判らないので、
Unitファイルで分けて管理する事が多いです。
○○Unitクラスとかw

>今は公開されていないのですか ?

はは、現在、私はホームページを持っていないのです。
いずれはサイトをぶち上げたいという野望は持っておりますが(汗
もちろんDelphiでですよ^^

FireMonkyが出てからここ最近になって、
UIと処理の分離、またUIに関しては、使うデバイスの解像度が実行時の時まで判らない為、
描画するならなんでも相対的な演算を行うという事を強く意識するようになっています。


[9930] FireMonkeyの登場返信 削除
2016/5/15 (日) 22:40:55 Mr.XRAY
> FireMonkyが出てからここ最近になって、

FireMonkey が登場した時,
それまでは,どんな形になるかは全く予測できませんでした.
VCL の機能追加 (プロパティの追加等) という形ではないとは思っていました.

業務アプリの開発自体が必要でなくなった今,FireMonkey の登場が一つの契機に
なったと思っています.
「これからは,サイトの記事等を整備し,現役引退と...」


[9926] Re5:プリンタ設定コンポーネントの開発返信 削除
2016/5/15 (日) 17:21:31 KON
▼ Mr.XRAYさん

(1)のプレビューをコンポーネント化しなかったのは、
普通、マウスホイールで上下にスクロールしてページをスライドしていきます。
が、スマホ等では実際の本の様に指で左右でスライドさせる場合があります。
マウスとジェスチャで処理を切り分けたらいいのですが、それではコンポーネントの
構成で困ってしまう。
それならば、PCモードとスマホモードというプロパティを付ければいいじゃないですか
という考えに至るわけですけども、そんなに時間を費やす事が出来ない事情が^^;
いま現状では、上下スライドのみとなっております。


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