アーカイブ
ネタが尽きなくなってきている。
数ヶ月間の放置の間は、あとはバグ潰して終了かとか思っていたのだが。
ともかく、前回のプロポーショナルフォント対応で、生じた矛盾が多々あるわけで、
なるべくそれらを修正したつもりでもまだ残っていた分を修正。
なかった機能を増やすと、気がつかないバグも増えるから、
その後自分で使って、気がついて直したりして、しばらくバージョンアップは続く。
2.07は、2.06以前にあったバグを修正した時点でアップしちゃったが、
2.08ではまた、2.07からのバグを修正してアップ。
しかし、バグだけ修正していればいいのに、2.08でもまた仕様変更したので、
それでバグが出てるかも知れなくなる。
記事:幅の合計が合わない
この、「して」が「てし」より狭まると言う現象は、カーニングというらしく、
Delphi Graphic Secretsに書いてあった。
著者は実際にカーニングが起こるのを見たことがないと書いてあったので、
よっぽど限られたフォントでしか発生しないのだろうか。
内部処理の都合上、カーニングされたら困るので、回避させる方向で。
あと、EmEditor Free版に影響受けまくっているので、
それをパクるんじゃなくて、自分なりにねじ曲げて解釈した上で、
もっとメモ帳らしく動作するようにこれからも変更していくかも。
これまでのTEditor互換的な発想は捨てて、メモ帳互換的にしていきたい。
結果的にEmEditorに似るかも知れないけど、
ソースコードはTEditorのパクリ、動作はメモ帳のパクリなんで、
EmEditorさんは訴えないでください。
そんな真魚2.08。
素人とプロの壁はどうしようもなく超えられないが、
Delphiの壁は素人でも超えられるという話。
ユニコード対応含むDelphiの壁はいくつも超えてきた。
真魚のBOX選択を改造した。
メモ帳にはない機能だから、メモ帳しか使った事がない人に見せびらかさないという発想から。
なんのこっちゃわからない物が、あまりメニューに並んでると美しくないからな。
BOX選択を知ってる人は、メニューになくてもAlt押しながら選択してみるし。
まず、萌ディタの開発日記にあるクリップボードフォーマットを参考にする。
BOX選択でクリップボードに送るときは、TEditorとVSに互換の形式にしてみた。
本当はDelphiのIDEとも互換にしたかったが、うまく動かなかったので無視。
EmEditorとも互換にしたいが、EmEditorと真魚を同時に使う場面が想定できないから無視。
ともかく、BOXのデータにはBOXマークを付けてクリップボードに入れる。
で、貼り付けの時、そのマークの有無で動作を変えれば「BOX貼り付け」は要らなくなる。
次にBOX選択ON/OFFを、Altキーでやるように変更する。
しかし、マウスでの選択時も、Alt+Shift+カーソルキーでの選択時も、Altを取得できない。
Altキー自体を、TNotePadが受け取れないことがわかった。
それどころか、Alt押してるとカーソルキーすら受け取れなくなる。
途方に暮れたので、ソース公開してるJmEditor、K2Editorからパクろうと思ったのだが、
JmもK2も、Alt+クリックは動作するのに、Alt+Shift+カーソルは動作していない。
萌ディタも同じ動作。
これがDelphiの壁だ。
どうやらDelphiでは、Alt押しながらのキー操作はショートカットキー扱いみたいになっていて、
Alt押しながらカーソル押しても、そのカーソル入力すら無効になるようなのだ。
そっか、Delphi製アプリはキーボードだけではBOX選択できないから、
Jmは「矩形選択」、K2は「箱形選択」をメニューから除去することが出来ないのか。
「なーんだ、できないのか」って、あきらめなかったわけだが。
Delphiで作られているDelphi IDEでは、Alt押しながらカーソル動くわけで、
やり方はあるだろうということでAltキーを追跡し、
TNotePadは受け付けなくても親ウィンドウが受け取っているのでそれを利用。
これでメニューからBOX関連の項目を消すことが出来た。
しかし、また一つ素人がTNotePadを使ってエディタ作れないハードルが出来てしまった。
Alt受け取る部分は公開されるソースに含まれないからね。
編集メニュー、右クリックメニューはもっとスッキリさせたい。