喫茶XRAYトップページ

[▲前のスレッド]

[988] ドキュメントを印刷する最初の最初は?返信 削除
2006/11/4 (土) 01:56:04
皆さん、お茶をお楽しみのところご無礼します。
環境はWindowsXP Delphi6 Personalです。
印刷の初歩の初歩の入り口が解らずうろうろしています。
RichEditでメモ帳を作成していますが、印刷の段階で
はたとたたずんでいます。
印刷といえば
    if PrintDialog1.Execute then
    begin
        RichEdit1.Print(Caption);
    end;
位しか知りません。これでは間が抜けているので、XRAYさんの
plSetPrinterをインストールして、Demo、説明を読んでいるのですが
解りません。
RichEditに表示しているテキスト文を印刷しようとして
       Printer.Title:='印刷のテスト';
       Printer.Canvas.Font.Name:='MS ゴシック';
       Printer.Canvas.Font.Size:=10;
       Printer.Canvas.TextOut(1000,1000,TabSheetEx.RichEdit1.Text);
とやってみるのですが一行しか印刷しません。
つまり、高機能を使う以前のお馬鹿な質問ですがご指導ください
ませんか。
よろしくお願いします。




[989] Re:RichEditの印刷方法返信 削除
2006/11/4 (土) 03:13:06 Mr.XRAY
▼ 宮さん

> RichEditでメモ帳を作成していますが、印刷の段階で
> はたとたたずんでいます。


RichEditは寸法の単位が特殊です。換算と工夫が必要です。
以下を参考にして下さい。

http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_RichEdit1.htm
http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_RichEdit2.htm


[990] Re2:RichEditの印刷方法返信 削除
2006/11/4 (土) 10:44:24
▼ Mr.XRAYさん

さっそく教えて頂きありがとうございます。
プリンタの世界は別世界ですね。(#ビン?なにこれ?
やっと給紙装置だと知りました)
すぐには理解できませんのでじっくり勉強します。
エディタは奥が深いから勉強になるとどこかに書いてあるのを見て
タブ式の簡易エディタを作成しようと取りかかったのですが
やはり、プリンタとルーラーが肝ですね。

RichEditが特殊と聞いてがっくりです。
実はTMemo、TRichEdit、SonEditなどどれをペースにするか
迷っていました。ネット検索すると、はっきり言って
TMemo、TRichEditなどぼろくそに書いてあります。
SonEditは個人コンポーネントで情報不足、どうせやるなら
RichEditがいいだろうと決めた次第です。

自分は、昔からエディタ関係はFitzNoteを理想のツールとして使って
います。もう10年近くアップデートはありませんが
いまでも十分通用します。
http://hp.vector.co.jp/authors/VA009019/
これを目指しています。

また、ローレベルな質問ですが、よろしくお願いします。

[991] Re3:RichEditの印刷方法返信 削除
2006/11/4 (土) 11:33:51 Mr.XRAY
▼ 宮さん

> やはり、プリンタとルーラーが肝ですね。
ルーラーも結構面倒かも。コンポがどかこにあったような...

> http://hp.vector.co.jp/authors/VA009019/
> これを目指しています。

いわゆる、アウトライン・プロセッサというやつですね。
Nanaさんが開発進行形でやっています。参考になるかも知れません。
http://www1.cncm.ne.jp/~ogawate/software/nanatree/nanatree.html

頑張って下さい。


[992] Re3:RichEditの印刷方法返信 削除
2006/11/4 (土) 13:00:44 Mr.XRAY
▼ 宮さん

> SonEditは個人コンポーネントで情報不足、どうせやるなら
> RichEditがいいだろうと決めた次第です。

SynEditというものあります。
http://synedit.sourceforge.net/
なぜ、他の方がTRichEditでなく、他のコンポを、というかと、いろいろ機能
を拡張していくと、TRichEditに拡張していく必要があります。
これを自分でやるとなると大変だからではないでしょうか。

私自身、自分が開発しているアプリにはTMemo,TRichEditのかわりにSynEditを
使用しています。

[993] Re4:RichEditの印刷方法返信 削除
2006/11/4 (土) 14:27:37
▼ Mr.XRAYさんいろいろ教えて頂いてありがとうございます。
 
> 私自身、自分が開発しているアプリにはTMemo,TRichEditのかわりにSynEditを
> 使用しています。


基礎となるエディットコンポーネントを選ぶのは大事なことだと思います。
ちょうど自動車を買い換える時どれにしようかなと考えている時のような
わくわくした気分になります。
それでTMemo、TRichEdit、SonEdit、AFEdit、SynEdit、TEditor、TNotePadを
見て回りました。
自分はそもそもなぜ簡易エディタを作ってみるのかと何度も自問自答しています。
TeraPadやNoEditorがあるではないか。何が不足なのか?・・・と。
TeraPadは行頭、行末の一括変換、追加、削除、空行/同一行削除ソート、
特に矩形範囲選択などに使っています。
NoEditorは、二つの文書の比較がいろいろ試して壱番気に入って使っています。
あとないのが書式でした。ワープロは一太郎を使っていますが、
最近はごちゃごちゃ機能がついて複雑で重い。
今は、正式文書を書くことはないですから、
もうちょっと軽めののが欲しいとは思っていました。
それで検討を始めました。

TMemo、TRichEditは、どこを見てもぼろくそ。
拡張性がない、バグが多いなどなど・・・。
ただし、RichEditは書式を保存できる点が最大の魅力だと考えます。
ただ、作成したファイルサイズは腰を抜かすほどのファイルサイズになるのが
最大の欠点。
SonEditは、ソースは有料、フリーのパッケージ版は説明不足。
(プリンタの件、フォントの件はまるで書いてない)
TEditorは有料で論外。
TNotePadは、解説ページ http://mana.ikuto.com/tnotepad.php
ユニコード関連の処理が難しそう。
それにDelphiでアプリを作成するのが空恐ろしくなるようなことを
書いてあり近寄りがたい。
SynEditもHPを見ましたが苦手な英語・・でパスしました。

そのようなわけで、今なら何でもいいんですが、できることなら道を誤りたくない(^_^;)。
Mr.XRAYさんがSynEditがいいとおっしゃるのだからいいと思います。
ただ、とっかかりページを読むのに1週間くらいはかかるでしょう
(理解できるかどうかは別(笑))。

そこで「ずる」して質問ですが
(1)SynEditは、テキストエディタですか、それともリッチエディタ(書式の保存)ですか?
(2)TplSetPrinterで完成した暁には、WebBrowserのWebページも印刷できますか?
(3)TplPrevは、ペアで使うものですか?過去ログで頻繁に出てくるものですから。
恐れ入りますが、以上お願いいたします。
では。

[994] Re5:RichEditの印刷方法返信 削除
2006/11/4 (土) 14:45:00 Mr.XRAY

> (1)SynEditは、テキストエディタですか、それともリッチエディタ(書式の保存)ですか?
パッケージにはTMemo,TRichEditに相当する両方が含まれています。

> (2)TplSetPrinterで完成した暁には、WebBrowserのWebページも印刷できますか?
WebBrowserのページの印刷は、自力ですね。
どこかのBBSにサンプルがあったような...

> (3)TplPrevは、ペアで使うものですか?過去ログで頻繁に出てくるものですから。
plSetPrinterということですしたら、以下を参考にして下さい。
http://homepage2.nifty.com/Mr_XRAY/Delphi/plPrev/B_SomePrinters.htm

[996] WebBrowserに表示しているページを印刷返信 削除
2006/11/4 (土) 15:14:17 Mr.XRAY
> WebBrowserのページの印刷は、自力ですね。
> どこかのBBSにサンプルがあったような...

こんな感じでしょうか。

//=============================================================================
//  とあるページをTWebBrowserに表示
//============================================================================
procedure TForm1.FormShow(Sender: TObject);
var
     AURL : String;
begin
     AURL:='http://homepage2.nifty.com/Mr_XRAY/index.htm';
     WebBrowser1.Navigate(AURL);
end;
//=============================================================================
//  TWebBrowserのページを印刷 ExecWBメソッドを使用する
// ・印刷を示すOLECMDID_PRINT
// ・プロンプトを出さないことを示すOLECMDEXECOPT_DONTPROMPTUSER
//   IEデフォルトの印刷・#95;イアログを用いる場合はOLECMDEXECOPT_DODEFAULT
// ・戻り値はいらないので次の最後の2つは無意味な変数
//============================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
     Tmp:OleVariant;
begin
     WebBrowser1.ExecWB(OLECMDID_PRINT,
                        OLECMDEXECOPT_DONTPROMPTUSER ,
                        Tmp,
                        Tmp);
end;


[998] Re:WebBrowserに表示しているページを印刷返信 削除
2006/11/4 (土) 16:00:51
▼ Mr.XRAYさんありがとうございます。
> > WebBrowserのページの印刷は、自力ですね。
> > どこかのBBSにサンプルがあったような...
> こんな感じでしょうか。


返信が行き違いになったようですね。
今すぐ実験できませんが可能性はあるということですね。
なら、希望がもてます。
では。

[997] Re6:RichEditの印刷方法返信 削除
2006/11/4 (土) 15:49:48
▼ Mr.XRAYさんありがとうございます。

> > (3)TplPrevは、ペアで使うものですか?過去ログで頻繁に出てくるものですから。
> plSetPrinterということですしたら、以下を参考にして下さい。
> http://homepage2.nifty.com/Mr_XRAY/Delphi/plPrev/B_SomePrinters.htm


synEditに取り組んで見ます。(#以前WebコンポEmbeddedWBの翻訳を
娘に頼み込んたとき二度とやらないときつく言われたし)

私ができればいいなと思っていることは、
1_上下左右の余白(これが中村の里のNkPrintersには見あたらない。)
2_文字サイズ、難しいことは言わずに「もっと大きく、もっと小さく」くらい。
3_選択部分の印刷、ページ指定印刷、全部
4_ページ番号を付ける。
5_どこかにファイル名を印刷。
6_印刷プレビュー
ですが、どうも、PrintDialog1、PrinterSetupDialog1との位置関係が
つかめないのですが、(すみませんm(_ _)m)。
私なりにまとめてみますと、
1_PrintDialog1、PrinterSetupDialog1は要求する機能がない。
2_そのため、それらを破棄して代わりにplSetPrinter、TplPrevを使うので
PrintDialog1、PrinterSetupDialog1は貼り付ける必要はない。
3_TplPrevからplSetPrinterはコントロールできるから、TplPrevを使えばよい。
4_PrintDialog1のような設定・#95;イアログは自分で設定フォームを自作する。
と言うことでしょうか。
すみません、飲み込みが悪くて。
お願いします。


[999] Re7:RichEditの印刷方法返信 削除
2006/11/4 (土) 16:17:23 Mr.XRAY
▼ 宮さん
ブラウザの機能と、印刷の機能の切り分けが必要です。
文字のサイズはブラウザの機能ですね。
一般的にhtmソースで指定しています(CSSも含めて)。

印刷の際にいろいろ条件をつけるのでしたら、ページを画像として取込ん
でから処理をした方がいいと思いますね。

それから、TPrintDialogなどを含めて、TplPrevのことは、一度テストプロ
グラムを動作させて、どんなことができ、どんな動作をするのか確認して
みてはいかがでしょうか。

[1001] Re8:RichEditの印刷方法返信 削除
2006/11/4 (土) 17:13:28
▼ Mr.XRAYさん
 
> それから、TPrintDialogなどを含めて、TplPrevのことは、一度テストプロ
> グラムを動作させて、どんなことができ、どんな動作をするのか確認して
> みてはいかがでしょうか。


すみません。
TPrintDialogなどは、実はもうやってみたのです。
RichEditでひな形までは作成しました。
贅沢を言わなければ動いていますが。

しかし、印刷のことはまだ濃霧の中という感じです。
lSetPrinterのDemo1Demo2・・とやっておりますので、
そのうち解ってくるでしょう。確かに飲み込みが悪い。
ありがとうございました。

[1000] Re7:RichEditの印刷方法返信 削除
2006/11/4 (土) 16:39:42 Mr.XRAY
ところで、宮さん。話は全くちがうんですが、
宮さんの世代ですと、

「愛と死をみつめて」
はご存知ですか。私は全くといっていいほど知らなかったんですが...


[1002] Re8:RichEditの印刷方法返信 削除
2006/11/4 (土) 17:54:52
▼ Mr.XRAYさん
> ところで、宮さん。話は全くちがうんですが、
> 宮さんの世代ですと、
>
> 「愛と死をみつめて」
> はご存知ですか。私は全くといっていいほど知らなかったんですが...


このころは、私も青春まっただ中でした。どうしてMr_XRAYさんがこれに
興味をお持ちなのか解りませんが、
ちょうど大学生か就職した頃でしょう。
たしか青山なんとかいう歌手が歌ってた話でしょう?たぶん。
このようなロマンチックな話には縁がなかったので記憶にありません。
運動系で貧乏なのにどうして毎晩
新宿から吉祥寺までの沿線のトリスバーに入り浸りできたのか今となっては覚えていません。
たぶん、・#95;田あたりのバーからいい女の子を引き抜いて店に連れて行って
いたからそのお礼で飲めたのかもしれません。
いまは、スカウトと言っているようですが。。
そして、そのころ6000円で2食付きの下宿ができた時代でしたが
明治座の近くの割烹料理屋のの離れに下宿?していました。
逆に毎月5000円もらっていました。
友人は「それは用心・#95;ではないか」と言っていましたが。
デートは三歩下がって歩く芸者を従えて銀座でデートをしゃれ込んでいました。
モデル、クラブの飲み代を払ってくれるホステス、新宿ロマンス座のトップ・#95;ンサー
など自分の青春ドラマができそう?というわけで、たしか映画にもなったような記憶が
ありますが縁がなかったですね。
ごめんなさい。




[1003] Re9:RichEditの印刷方法返信 削除
2006/11/4 (土) 18:25:33 Mr.XRAY
▼ 宮さん

読んで思わずゴメンなさいと思いました。
いままですごい人生送って来られたんですね。

>たしか映画にもなったような記憶がありますが縁がなかったですね。
いや、その... 何かちょっと安心しました。
職場で話題になっていた時があったもんですから。


[1006] Re10:RichEditの印刷方法返信 削除
2006/11/5 (日) 23:03:23 宮 〔HomePage
▼ Mr.XRAYさん
> 職場で話題になっていた時があったもんですから。

そうでしたか、安心しました。意図がわからなくて。
私の父は鹿児島の田舎の教師で9人家族で貧乏でした。
私は親戚の援助を受けて鹿児島のラサールという高校を卒業して東京に出てきました。
あまり成績はよくなくて、160人中60番台でした。
当時東大に110名前後進学していましたので、入学できないことはなかったのですが
2年浪人して中央大学に行きました。
学校も友人も怪訝な顔をしていました。父にはまた落ちたといって
嘘をついていました。実はアルバイトしながら生活して受験していなかったのです。
祖父母が亡くなり、2歳年下の妹が就職できたのを機に、
当時アルバイトができて授業料が一番安い大学を探したら中央大学でした。
学校の数え歌にもあるように、バナナのたたき売りをする中大生・・・。
伝統は変わらないなと思いながら。
大学4年の時、これからの東京は家を借りる方じゃなくて貸す方にならなければ
ならないとず〜と考えていましたので、卒業するときは
当時ローン等と便利な制度はなくて就職先が決まっていたので
銀行と直談判して550万円融資してもらい
東京の片隅に117坪の土地を買いアパートを建ててアパートの一部に
田舎から両親、兄弟を呼んで生活を始めました。
そして完済したのを機に両親に不動産を全部あげて
結婚し着の身着のままで家を出ました。
横浜で新居を構えたのですがカミさんが今でも言います、
アナタが持ってきたのは破れた下着と靴下だけだったと言っています。
婚約指輪も、結婚指輪も会社から借金して結婚してから返済したのですから。
おかげさまで今は六本木に小さな3階建ての戸建てを買い、住んでいます。
卒業後入社した会社は2800名くらいの中規模な会社でしたが、東、西とセントラルリージョンに
3エリアにわけて、セントラルリージョンを社長が担当し私は大阪以西の西日本担当
支社長を最後に退社しました。

そのためプログラムは65歳を過ぎてから始めました。
若い人のように飲み込みが早くありませんがこのように皆さんに助けてもらいながら
プグラムを楽しんでいます。
ここには書けませんが結構おもしろいドラマができると思います。
「わが青春に悔いはなし」です。
よけいなことをしゃべりました。「中央大学」というキーワードのせいかな?
では。




[1008] Re11:RichEditの印刷方法返信 削除
2006/11/6 (月) 00:28:20 Mr.XRAY
▼ 宮さん、すごいです。
これはドラマになりますね。事実は小説より奇なりといいますが...

> > 職場で話題になっていた時があったもんですから。
私は宮さんよりも遥かに(?)年下ですが、結構若い人が知っていて、それが
親から、特に母親から聞かされていたというんです。
でも私は全く知らなかったんです。

「えっ、知らないの」
と言われました。でも、いろいろ調べてみたら、結局皆さん、宮さん同様
きちんとというか、正確には知らないようです。
しかし、中にはやたら知っている人もいたのです。負けました (^_^;)


[1004] 帳票の印刷とWebの印刷返信 削除
2006/11/5 (日) 12:43:29 Mr.XRAY
▼ 宮さんへ

TplPrev(印刷部レビュー制御)とTplSetPrinter(プリンタ設定)コンポーネント
は、それぞれに添付してあるテストプログラムの様な用途に使用するものです。
RichEditの印刷については、前に述べた通りです。

Webのページの印刷に使用するものではない、と現在のところ認識しておいて
下さい。
また、TPrinterSetupDialog,TPrintDialogもWebの印刷の設定には使用できな
いと考えて下さい。


[1005] Re:帳票の印刷とWebの印刷返信 削除
2006/11/5 (日) 21:53:53
▼ Mr.XRAYさん
> Webのページの印刷に使用するものではない、と現在のところ認識しておいて
> 下さい。
> また、TPrinterSetupDialog,TPrintDialogもWebの印刷の設定には使用できな
> いと考えて下さい。

何度もご丁寧に教えて頂いてありがとうございます。
了解しました。

なにせカラカラに乾いてきた脳みそですから、少しずつ、理解できる箇所も
ちらほら脳みそに入り込んできています。
解っている人から見れば、「ばっかじゃなかろか」と思われるかもしれませんが
いたって本人は必死なのです。

NkPrintersもインストして見ているのですが、
これは、はっきりとPrintDialogとPrinterSetupDialogは不要と書いてありましたから
外観は解ったのですが、
入門者が一番理解できにくいのはPrinterに描画して印刷する部分だと思います。
ファイルを直接ロードして印刷したり
 bm.LoadFromFile(ExtractFilePath(Application.ExeName) + 'shun06.bmp');
あり得ない例ですが、事前にセットした文字列を直接プリントしたり
NkPrinter.Canvas.TextOut(10, 10, '息子の俊一です');
だからディスプレイのドキュメントを印刷するのも解るだろうと言われても
?????。ディスプレイに表示しているものを印刷する例がない。
余白をとる例もない。コンポーネントの外観はすぐつかめたのですが
一番やりたい余白と複数ページがないので初心者には無理。

plSetPrinter, plPrevは各パートは非常に詳細に書かれているので解りやすい。
しかし、最初外観が見えない。PrintDialogとPrinterSetupDialogと同じような
アイコンを貼り付けたのだから不要なのだろう。と考えたり
余白を設定する、例の上、下、右、左を入力するEditはどこに作るのかな?。
PrintDialogのフォームを動的に広げてコードで作るんだ!と
思ったり、ようするに外回りがなかなかつかめませんでした。
それに、RichEditのコード例のページは全然気付きませんでした。
コンポーネントのところだけ見ていました。
とにかく少しずつ前進あるのみです。
今後ともよろしくお願いいたします。m(_ _)m


[1007] 印刷の余白の設定方法と使用方法返信 削除
2006/11/5 (日) 23:19:33 Mr.XRAY
▼ 宮さん
印刷の際の余白というのは、そのアプリを作成する人が設定するものです。
余白を決めたら、その余白に入るように印刷のコードを書くわけです。

例えばワードでは、余白を設定する画面があります。これを設定すると
ワードは、印刷の時に(もちろん印刷プレビューの時も)これに合わせて
印刷するようになっているわけです。

例えばここを見て下さい。
http://homepage2.nifty.com/Mr_XRAY/Delphi/plPrev/T_TextOutFile.htm
ここのリスト1では、

with plPrev1 do begin
         TopMargin   := 300; {上端マージン}
         BottomMargin:= 250; {下端マージン}
         LeftMargin  := 300; {左端マージン}
         RightMargin := 250; {右端マージン}

というコードで、余白(マージン)を決めています。決めたからといって
その設定を自動的にOSやDelphiがやつてくれるわけではありません。
自分で、これらの値を使用したコードを書くわけです。
必要であれば、これらの値を入力するためのTEditを配置したフォームを
作成するわけです。上ではコード上で設定しているだけです。

Delphi7であれば、PageSetupDialogを使用して次のようにもできますが、
そうでなければ、自作です。
http://homepage2.nifty.com/Mr_XRAY/Others/PageSetupDialog.htm

procedure TForm1.Button1Click(Sender: TObject);
begin
     if PageSetupDialog1.Execute then begin
       TopMargin:=PageSetupDialog1.MarginTop;
     end;
end;


[1011] Re:印刷の余白の設定方法と使用方法返信 削除
2006/11/6 (月) 10:41:37
▼ Mr.XRAYさん
> ▼ 宮さん
> Delphi7であれば、PageSetupDialogを使用して次のようにもできますが、
> そうでなければ、自作です。

ありがとうございます。
解りました。
なんだか、だんだん解ってきました。
がんばります。


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