アーカイブ
これまでは新規ファイルやマルチバイト文字を含まないファイルを最初からSJISとして扱ってきたが、真魚の内部をざっと確認したところ、文字コード未定のファイとして扱うように容易に変更することが出来た。さらに、この文字コード未定のファイルにマルチバイト文字を書き込んでセーブしようとする場合だけ、Windows標準で保存するかホームページなどの標準で保存するかの確認ダイアログを出すという風にしてみた。で、ひょっとしたらこのダイアログをいちいち…続きを読む
例えばこの日記はWordPressを使ってるが、ソースをいじる場合はUTF-8にしなきゃいけない。プラグインでもなんでも、元のソースは日本人が書いてる事は少なく、たいがいはマルチバイト文字を含んでいないため、これを真魚で開くとSJISと判定される。そこに自分でマルチバイト文字を書いて保存すると、UTF-8じゃなきゃいけないのにSJISになるわけだ。真魚の動作としては何らミスしてはいない。これはしょうがないことだ。でも、自分で使う上でさ…続きを読む
まずタスクバーそのものの話をすると、同じアプリを複数起動するとそれらをまとめて表示するかどうかって言うオプションは古いWindowsでも存在した。Windows7ではこれがさらに一歩進んで、単一起動のMDIアプリやタブ式アプリでも、子ウィンドウをタスクバーから切り替え出来るような仕組みを用意している。ただし、普通にMDIやタブのアプリを作ってもそれは実現できなくて、Win7でそれを行う機能を搭載したアプリだけが、今のところ、MDIやタ…続きを読む
今やってる作業は、元々タブ切り替えを前提としたSDIアプリだった真魚を、タブ付MDIに改造する作業だ。このSDI/MDIの定義が曖昧になりがちなのでちゃんとしておくが、広義では一つのアプリがたくさんファイルを開けたらMDIってことになってるから、タブ式の真魚は最初からMDIと言う事になる。今言ってるのはそれじゃなく、Windowsが元々の仕組みとしてサポートしてる狭義のMDIって事なんだけど、一つの親ウィンドウの中にいくつも子ウィンド…続きを読む
あたしのDelphi歴は相当長い方だと思うが、これまでまともにMDIアプリを作ったことがなかった。だから、現在の仕様が最初からなのかいつからなのか分からないが、あたしはこれじゃマズいと思う。よっぽどDelphiでMDIアプリを作る人がいなくて、こういう仕様でも文句が出ないんだろうな。Delphi使ってる人自体が少なく、その中でもMDI使う人が少ない。 まぁ、簡単な例では、Form1のOnCreateやOnShowあたりでForm2を…続きを読む
これほど長期に真魚の更新をしてないんだから、作者自身が他のテキストエディタに乗り換えれば良いのに、なんかもう新しいテキストエディタに慣れる元気ってのがなくなってて、世間ではどんなのが新しくでてきたかとか、老舗のやつがどんなアップデートをしたのかとか、全く持って状況を把握してなくて、全然知らんと言うのが現状。テラパッドとかはまだ定番なの?つかテキストエディタの需要自体減ってるのでは?まぁいっか。この度、日記にコメント欄を付けた事によって…続きを読む
そもそもタブなエディタが欲しくて作り始めたのが真魚だから、タブじゃない真魚を作るなんて変な話だけど、何とかどうにかならないかと模索している。一度に開くタブが多くなってきたときに多段になると編集領域が狭まって邪魔だし、かといってタブ幅を狭めると見にくいし、じゃあスクロールはどうかというと隠れてるタブへのアクセスが問題だ。あたしは作った本人だから、タブにマウスカーソルを持っていけばフルパスが表示されると言う事を知ってるし、そうやって使って…続きを読む
Delphiは買ってしまったが、当初目論んでいた64bit版真魚は、少なくとも今回のDelphiでは作れそうもない。Delphiというか64bit版のWindowsがそもそも、ポインタは64bitだけど数字は32bitで扱うような仕様になってて、内部で64bitのデータを扱っても外部には32bitずつ自前で切り分けてどうにかしなきゃいけないみたい。せっかくシンプルに作ってる真魚だから、シンプルに64bit化したかったが、いちいち小細工…続きを読む
Delphiの汎用数値型は符号つきがInteger、符号なしがCardinalだから、何も考えないで数を扱うときはIntegerばっかり使ってきた。たとえば1から10までしか変化しない数字を扱うのであれば、32bitのIntegerを使わないで16bitや8bitの型を使えば、たぶんメモリやレジスタを節約できるんだろう。また、マイナスにならないと分かってる数を使うなら、Cardinalにした方が倍も大きい数字を扱える。だからそうする必…続きを読む
あたしは作者なんだから、真魚に必要な機能があればスクリプトを書かないで本体に実装しちゃえば良いわけで、だからこそどうしてもスクリプト部分は、まだまだやる事がいっぱいあるにもかかわらずついついほったらかしになってた。でも、例えばあえて標準で実装しないでスクリプトで実装した文字数カウント機能なんかは、何を1文字と数えるかがユーザーによって異なるから、自分用にカスタマイズしてカウントすれば良いという意味でそうしているから、いざスクリプトなし…続きを読む
bregonig.dllはbregexp.dllと鬼車の合わせ技だから、Delphiからbregexp.dllを使うためのユニットと鬼車を使うためのユニットを参考にして、うまいこと真魚の正規表現検索ならびに置換で利用することに成功した。と言っても最小限のテストしかしていない。上へ検索、下へ検索が狙い通りに動くかどうか、置換で$を使ってカッコを指定できるかどうかって事ぐらい。上へ検索に関しては、bregonig.dllに該当する機能はな…続きを読む
めっきりよそのテキストエディタの動向をチェックしなくなったから忘れちゃったが、正規表現を使って逆方向検索って普通できないんだっけ?真魚は上へ検索とか下へ検索とかってアイコンを付けちゃってるから、正規表現の時だけそれが無効になるって言うのは意味わかんないから避けたいんだよ。その辺が鬼車だと、逆方向に検索するって言う引数がないから見落としちゃってたけど、検索範囲を逆にするだけで逆方向の検索になるんだよね。たぶん、真魚に鬼車を使用した理由と…続きを読む
自分で正規表現クラスを作るのは無理だと言い切っちゃうくらいだから、そもそも正規表現に対する理解もあまりしてなくて、結局誰かの作った物を利用するしかない。従来のx86版真魚では鬼車のDLLを使っていたが、これも2010年で更新が止まっているっぽい。そして、鬼車の改変版として鬼雲ってのをよそで出してて、ただしmakefileはwin32しかついてこないみたい。 bregonig.dllって言うのが出てて、昔から多くのテキストエディタで利…続きを読む
一応体験版で、真魚を64bit版に出来る事は確認できた。しかしそのままでは32bit版で使っていた機能の全てを継承することは出来ない。最初にデバッガすらキャッチできなかったアクセス違反との戦いだったが、それはフォント関連のAPIでコールバックを使っている部分が原因だったことを突き止めた。単に64bit化しただけじゃなく、言語仕様そのものが変わったのか、あるいは最適化が安全でないのか、この部分は今のところ、どういう書き方をしても32bi…続きを読む
一般人向けのパソコンにVistaが載っていた頃は、やっぱりXPとの互換性を大事にしたからか32bit版のものが多かったが、同時に64bit版も売ってたせいで特にデバイスドライバの64bit対応が加速してくれて、7が出たらもう一般人向けのパソコンはほとんど64bit版になってくれた。そのせいでOSは64bitなのにメモリーは従来通りの2GBしか搭載されてないモデルばっかりの暗黒時代を経由する事になったが、今ではみんな4GB搭載になり、い…続きを読む