遂にエディタを換装! シェアウェアだのどうのと言ってましたが、自作のクソさ加減にほとほと愛想がつき申した。モノは…… TEditor ……(^^;) これ、レジスト料が 3000 円なんですが、グウですね。グウ。チョキではなく。それは関係なく。
なにが良いって、タグみたいな「開始記号」から「終端記号」までをトークンとする着色ができる、多分唯一のエディタでしょ。……自作の事は忘れてください。僕も忘れました。
TEditor ではこれのことを「ブラケット」と用語してますね。ブラケットと言えば[=Bちなみに{≠ヘ「ブレイス」、(≠ヘ「パーレン」と言います。関係ないですが。
さて。ただ導入しただけではありませぬ。と言うのは、自作の方に依存しまくってたからねェ(笑) HotMilk 全体を書きなおすより、TEditor の方を何とかするほうが早いでしょ。
と・こ・ろ・が。
この TEditor、継承してどうこうできる様になってない?(^^;) どうも、そんな気が。そりゃ、なんだっつって TCustom... じゃなくてもいいはずですけど……ねぇ。
で、もとのソースを書き換えました。不要なプロパティを Public で宣言しなおし、クラス名を TCustomHEditor に換え、一応登録用に TEditor = class( TCustomHEditor ) も作り……
これら自体はそんな手間じゃないんですけど、バージョンアップのたびにやるのですかい?(汗) むう。要望とか出すほどじゃないけど……さ。
要望と言えば。
TEditor は、書式に対して、フォント名とサイズを指定する事ができません。これは痛い。どうして、各書式は TFont でなく TEditorColor なのか? ……これは何で TFont にできないのか、最初は解らなかったんで、サイズの指定だけでも自前で実装して見ました。
ダメでした(泪) TEditorColor に Size プロパティを追加して、TEditor.PaintLine を書き換えて Size プロパティから読んだデータを Canvas に設定して見たら、サイズの変更自体は叶いました。でも、サイズが小さくて足りない分はゴミが出ます。直前の Canvas が残ってるんですね……
全体を逐一クリアすのは馬鹿馬鹿しいのですが、他に何か考えられますかね。とりあえず、描画する Rect は算出されているので、その領域をクリアする手はあります。この方法では「標準より小さくなるフォント」は問題ありません。後はせいぜい、ベースラインを守って描画することくらい。
ころが、大きく変わるほうの指定がダメなんですよ。次の行の描画のとき、消されてしまう。動的にその行の描画領域を大きくするか、ライン毎ではなくトークン毎に Rect を求めるようにするか……見た目はどちらでも構わないはずですが。
ここが自作で辛いなと思った部分で、なかなか難しいですよ。もっとも、 TEditor ではトークンの範囲を記録するのには、そのような方法を使っているようですが。クラスの宣言をチラッと見ただけですが、チェーン状のリンクを作成してるみたい。
とにもかくにも。基のソースコードへの手の付けようがなくて挫折。行全体を拡げる手もありますがね。まぁ、そんなことは後でやれば良いや。
あとはまぁ、しょうもないなりにヘルプを充実させてみたり。そんなこんなで、βリリース開始してみたり。長かった……とても長かった(笑) しかし、とうとう1メガバイト行ったか。行って欲しくなかったのに。まぁソースコードつけてるけどさ。