アーカイブ

2006年 10月 24日 のアーカイブ

あたし自体が、印刷に対してあまり知識がないせいで、一から作るのは非常に困難で、
いや、困難と言っても真魚以外のソフトで印刷機能を作った事があるから、素人でもないが、
無料でやってるソフトの動作確認のために紙を消費するのは損だし、
既存の、パクっても問題なさそうな印刷ユニットを利用しようと言うことで現在にいたっている。
真魚の印刷はホントにもう激パクリであり、TEditor用印刷ユニットを、真魚用に改造しただけだ。
そのパクった時点では真魚はプロポーショナルフォントに対応していなかったので、
少ない改造でそれを実現して上手く動いていた。

真魚がプロポーショナルフォントに対応したとき、印刷の方も対応させたつもりだったが、
どうやら確認が不十分だったらしく、画面表示用と印刷用で別フォントにするとおかしくなる。
というのもこれ、真魚のエディタエンジンは全体で一つのフォント設定しか持てない。
複数タブで編集する際、各タブで別個に設定を持つのは無駄だと言うことで、
例えば壁紙とかフォントとかは、全部のタブで共有するように作ってあるわけだ。
そのせいで、印刷用に別フォントを指定して、表示用フォントと違っていた場合、
印刷用の折り返し計算がちゃんとされていないという状況になっていた。

印刷するときは印刷用フォントで設定し、直後表示用フォントに設定し直すことで対策。

元々TEditorのために書かれた印刷ユニットなので、TEditorにはない機能は想定されてない。
想定されてない機能を後から追加実装してるわけだから、コードはメチャクチャになっていく。
自分で書いた所も、表示用と印刷用で別フォントを持てるように設計してなかったせいで、
スマートじゃない動作を余儀なくされちゃう。
真魚のバージョン1.xxの時も、TEditorを改造しすぎて無理矢理な所が沢山詰まっていたが、
バージョン2.xxになってからも後から想定外の追加機能改造をしているので汚くなってきた。
かといって、3.xxとして作り直すほど活躍の場はあるかどうか。
.NETがもっと早く完成すると思ってたから、1.xxの次は.NETに行き、
動作が遅すぎてもう一度Delphiに戻って2.xxを作ったわけだが、
次に作り直すなら、今度こそ.NETで正しいのか、またDelphiなのか、それとも別の何かか。
そもそも、作り直さずEmEditorの有料版を買って乗り換えて開発終了かもしれないし。

ともかく、バグ修正した2.181を先ほどアップロード。