(10/01/01~)

10/01/12

Delphi の Tips
 こっそり(?)増えてます。

 ちょっとマニアック。

MECSUtils ver1.39
 Delphi 7 とかでコンパイルが通らなくなっていたので修正。MECSUtils は基本的に Delphi 2007 以降用ではあるのですが、例えば "こういう問題" を解決する程度なら Delphi 6 でも使えると思います。以下サンプルソースコード。

procedure TForm1.Button1Click(Sender: TObject);
var
  FS: TFileStream;
  Src, Dst: AnsiString;
begin
  FS := TFileStream.Create('C:\EUC.TXT', fmOpenRead);
  try
    SetLength(Src, FS.Size);
    FS.ReadBuffer(PAnsiChar(Src)^, FS.Size);
    if ConvertString(51932932, Src, Dst) then
      ShowMessage(Dst);
  finally
    FS.Free;
  end;
end;

 こんな感じでもいいんですけどね。

procedure TForm1.Button1Click(Sender: TObject);
var
  Dmy: AnsiString;
begin
  Memo1.Lines.LoadFromFile('C:\EUC.TXT');
  ConvertString(51932932, Memo1.Lines.Text, Dmy);
  Memo1.Lines.Text := Dmy;
end;

 文字コードの変換は変換規則があるのであればロジックで書いた方が高速動作する事が多いのですが、ファイルのやりとりを考えると OS の機能を使って変換したものを使った方がいい事があります。ケースバイケースで使い分けるといいでしょう。

Windows Vista / 7
 今更な話ですが、XP のシェアが減ってきて Vista / 7 が増えてくると困った事になる場合がありまして。

 一つは IME。コアな事やってると、IMM で出来ていた制御ができなくなる事があります。これは Vista 以降で TSF が採用になり (IMM は TSF でエミュレートされる)、CUAS が強制される事によって引き起こされます。

 もう一つは OpenGL。ウチの会社は 3D の案件は皆無なので当面問題はなさそうですが、Vista 以降での OpenGL は DirectX でエミュレートされ、パフォーマンスが低下してしまいます。 ビデオドライバを更新する事によって OpenGL のパフォーマンスが改善される事はありますが、絶対的な速度を比べるとやはり XP には敵わなかったします。

 無理矢理 Delphi の話に絡めてみると、TSF の件は要望として QC に登録されています (Open されています)。OpenGL は OS 側の方針なので如何ともしがたいため、Delphi 2010 で DirectX 関係のヘッダが拡充されたのだろうと思います。

OpenGL
 Delphi 3 以降で OpenGL.pas が利用できます (標準添付)。サンプルコード / 動作デモは http://www.sulaco.co.za/opengl.htm に沢山あります。DirectX もそうでしたが、勉強する事はあっても、仕事では使う機会がないんですよねぇ...。


10/01/13

一昨日
 実家の方で "どんどや" やってきました。ウチの子供を連れていったのよ。

 それにしても、餅焼いてる子供よりも、焼酎を飲んでるオッチャンの方が多いってどういう事よ (^^;A

 火が寂しいトコで餅を焼いているように思えるでしょうが、燃え盛ってる火で餅を焼くのは素人のする事です (アルミフォイルにくるんで焼くのではない限り)。"おき火" になったトコでじっくり焼くのがキレイに焼くコツです。

 あちこちで "どんどや" やってまして、"できあがっちゃったオッチャン" もあちこちで確認できました。ビバ!田舎。

今日
 南国九州...ねぇ。

 今朝の熊本はこんな感じ。地球温暖化もどこ吹く風ですな。ここ10年で一番積もった気がします。朝方に家に帰って、上の子が小学校に行く前にひとしきり遊んで、その後、幼稚園児の下の子と 1m 程度の雪だるまを作りました...ま、殆どは僕が作ったのですがね。


10/01/18

TEditor
 ちょっといじってみた。

 まだまだだけど。

今日の (俺的) 神曲
 浜田麻里 の "Nostalgia"。"Return to Myself ~しない、しない、ナツ。" よりコッチが好き。「アタシの歌を聴けー!」って感じで。



10/01/19

Hotfix 3 for Delphi 2009 and C++Builder 2009
 リリースされました。IntraWeb の最新版をインストールし、プロジェクトフォルダに UTF8ContentParser.pas をコピーして利用するという変則的な形態になっているので要注意。

今日の (俺的) 神曲
 真島昌利 の "アンダルシアに憧れて"。マッチさん のを含め、ジャニーズのカバーはヌルすぎる...ジャニーズのカバーは マッチさん のカバーだから仕方ないか。



10/01/20

Unicode SynEdit
 2009/09/28 で更新が止まっているかのように思えるが、実はそれよりも新しいもの (http://synedit.svn.sourceforge.net/viewvc/synedit/SynEdit/) が存在する。これもそのうちバグ報告しとかなきゃなぁ...。

TEditor
 Unicode 対応のためにいじり中。把握しているだけで、あと 44 箇所 に問題がある。方針は以下の通り。

 こればかりは仕方のない事だけど "文字幅=バイト(エレメント)数" なコードが結構あるのが頭痛の種。ANSI では画面上での文字幅の計算(キャレット移動/選択等)とエレメント数の計算(文字列コピー等)が Tab や 改行 を除けば同じで済むのだが、Unicode だとこれを分けて考えなくてはならないからなぁ。

 まぁボチボチとやっていくつもり。

プログラミングはプロポーショナルフォントの方が読みやすい ? (/.)
 つーか、MS-DOS の時代から矩形選択できないエディタを常用した事が一度もない。MS-DOS では "RED"、Human68K では "MY.X" を使ってたなぁ。

今日の (俺的) 神曲
 神曲にゲームもアニメも関係ない。YsII - Ancient Ys Vanished the final chapter - より "To Make The End of Battle"。古代祐三 作曲。



10/01/21

TEditor
 Unicode 対応の...(以下略)。どんな動きをするか試してみたいという物好きさんは software/TEditor_Test.zip からどうぞ。一見、マトモに動いているような錯覚を起こすからタチが悪い>Unicode 化。把握しているだけで、あと 35 箇所 に問題がある。

今日の (俺的) 神曲
 安宅美春 の "孤独のRUNAWAY"。



10/01/22

今日の (俺的) 神曲
 稲村オーケストラ の "希望の轍"。まぁ、サザン です。



10/01/23

TEditor
 Unicode 対応の...(以下略)。どんな動きをするか試してみたいという物好きさんは software/TEditor_Test.zip からどうぞ。把握しているだけで、あと 22 箇所 に問題がある。

 TEditor 2.52 は、実は画面描画と文字列操作は分離されていて、9割5分以上のコードはそのまま動く。座標系の相互変換の際に ANSI だと基本的に TAB の幅を考慮すればよかったのが、そうではなくなってしまったのが問題。カラム位置 (描画系座標) をエレメント位置に置換する際にはカラム位置 (描画系座標)から "展開された TAB 位置" の分を差し引けばよかったが、Unicode だとそれに加えてエレメント幅をプラスマイナスしてやる必要がある。

 あとは "混ぜるな危険" なコード。"Copy(S, 1, FCol)" このようなコードは正しく動作しない。S はエレメント単位なのに対して、FCol は描画座標系だからだ。他の "混ぜるな危険" なコードには "ワードラップ / 一行最大文字数" 関係の処理がある。

今日の (俺的) 神曲
 武田鉄矢 の "少年期"。



10/01/24

TEditor
 Unicode 対応の...(以下略)。どんな動きをするか試してみたいという物好きさんは software/TEditor_Test.zip からどうぞ。把握しているだけで、あと 7 箇所 に問題がある。

 ここまで来ると、状況を再現する文字列を作る方が難しかったりする。

今日の (俺的) 神曲
 Wink の "咲き誇れ愛しさよ"。


 「えー、Wink でしょー?」という色眼鏡を外すにはこれを観て貰うしかないな。


 原作者によるセルフカバーの方がデキがいい事が多いが、この曲に関してはどちらもそれぞれにいい所があると思う。


10/01/25

SKRegExp ver0.93
 Unicode 版 Delphi 対応の正規表現ライブラリ。作者は 小宮秀一さん。Perl 5.8 互換で外部ライブラリは一切不要というステキ仕様。もちろん、日本語対応。"Unicode 版 Delphi 対応" と書いたけれど、実際には Delphi 2005 ~ 2007 の ANSI 版 Delphi にも対応しているので、"Delphi 2005 ~ 2010 対応" という事になる。

 サロゲートペアを意識する必要はない。メタ文字指定 "\x{n}" も UTF-16 のエレメントを 2 個並べる必要はなく、"\x{20BB7}" のように Unicode のコードポイントで指定可能。

今日の (俺的) 神曲
 PSY・S の "レモンの勇気"。



10/01/26

TEditor
 Unicode 対応の...(以下略)。どんな動きをするか試してみたいという物好きさんは software/TEditor_Test.zip からどうぞ。把握している問題はもうない。言うまでもないことだけれど、バグがないという訳じゃない。潜在的な "混ぜるな危険" コードが未だにどこかに眠っている可能性は否定できない。

 デスマの合間に気分転換でやっているから、公開は先になりそう。ソースは Maeさん のを流用している...多謝、多謝。"htSearch.pas" については SKRegExp ベースで書き直した方が早いと思う。

今日の (俺的) 神曲
 MELL の "Red Fraction"。


 「では...ご堪能下さいまし...」


 html ソース...(ぼそっ)


10/01/27

今日の (俺的) 神曲
 "Thunder Force V" より "Legendary Wings" ...なのだが、その前に。

冥王星外部にて発見された人工物体は、現人類の水準を遙かに超えた技術によって建造された戦闘兵器だった。 人類はそれを"Vasteel"と名付け、その技術を用いた機械群の開発を行う大型無人人工島「バベル」を建設し、その管理を人工知能「ガーディアン」に任せた。
西暦2150年、突如「ガーディアン」は人類からの独立を宣言、全地球圏に宣戦を布告した。
劣勢に回った人類は、有人の"Vasteel"のレプリカ、超高機動小型戦闘機「RVR-01 GAUNTLET」を開発する。 そして、「バベル」及び「ガーディアン」破壊のために結成された特殊戦闘機部隊"Thunder Force"による作戦が開始された。 (Wikipedia より転載)

 これがストーリー。"Vasteel" ってのは、ぶっちゃけると前作 IV の自機 (FIRE LEO-04 "RYNEX")。

 なんでまた冥王星辺りなんぞをウロついていたのかといえば "こういう事 (TF IV エンディングより)"。まぁ、"ヴァン・ヴィール" が地球からアストラギウス銀河に飛ばされて、発掘されたら "レグジオネータ" って名前になっちゃった ってのと同じ。シチュエーションは逆だけど。"青の騎士 ベルゼルガ物語" との類似性については 10 年以上前の雑談でも触れている

 ...そんなどうでもいい話は放っておいて、まずは前々作 "Thunder Force III" より "Back to the fire"。1 面の曲です。


 "Thunder Force Gold Pack 1" OP より。


 そして、"Legendary Wings"。


> restart
> system "GUARDIAN"
>
> worldnet break down
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory error
> memory check ok
> playback

 ネタバレしても構わないヒトは以下のエンディングをどうぞ。



10/01/28

TEditor 2.52 for "Unicode 版 Delphi"
 リンク先は ソースコード一式。評価用バイナリではありません。

 高速化等の提案は歓迎。

何故か...
 本田さんトコの掲示板 に投稿できなかったという。"505 Internal Server Error" ...って何故に?

Unicode 版 TEAD について
 えっと、PPA は暫定的に OK で、正規表現は SkRegExp があるっしょ...まぁ、このデスマを無事くぐり抜けたら考えます。テキストエディタ作るのって意外に R&D になるんですわ。色んな意味で。

今日の (俺的) 神曲
 "GEAR戦士 電童" より "Over the Rainbow"。


歌詞
 最近の曲の歌詞ってのはあまりにも抽象的すぎて情景が想像できない陳腐なものが多い...何にでも合わせられるというのは利点なんだろうけれどねぇ。含みを持たせるにしても、もうちっと尖った歌詞の方がイイと思う。「信じる」だの「切ない」だの「壊れそう」だの「歩いていく」だの「はかない」だの「みつめて」だの、そんなスクリプトで自動生成できそうなのは要らん

 実は上に挙げた "Over the Rainbow" もそんな歌詞のオンパレードなのだけどね。


10/01/29

SkRegExp
 文字定数が ResourceString に分離されているのは、

某氏:「Delphi で 正規表現ライブラリが欲しいんだ」
高橋さん:「SkRegExp ってのがあるよー」
某氏:「日本語ワカンネ (プゲラ」

 とある場所でこのようなやりとりがあったからです (多少オーバーな表現が含まれています)。

ぷっちん!

 Web 翻訳とかも手軽に利用できるこのご時世に、たかだか日本語だからという理由で使おうとしないというドアホ (だって、正規表現の構文自体は ASCII 文字しか使わないじゃん) にムカついたために分離してあります。ちなみに正式版である ver 0.93 では小宮さんによる英語の ResourceString が用意されています (デフォルトは日本語ですが)。

 ちょっと コレ を思い出しちゃったので...。

今日の (俺的) 神曲
 "スターダストレビュー" の "木蘭の涙"。



10/01/30

Windows 7 のマルチタッチに対応したディスプレイ
 やっとこさ増えてきたみたいで。

 "Slate PC" もマルチタッチみたいで、FLASH が普通にブラウザで動作するのを魅力的に思う ヒトも居るかもしれませんね。つーか、KIOSK 端末的な使い方をするなら、Windows Mobile 版の "Slate Mobile PC" ってのもアリだと思うのですが。ま、"Windows Embedded Standard 2011" とかで機能を絞ればいいんでしょうけどね。

FLASH
 iPad で FLASH が動かない事に対して Apple を擁護しているヒトが居るようですが、客観的に Web の現状を考えれば致命的な問題だと思うのですが。無駄に FLASH が溢れている事の是非は別の話だと思うし、なまじ画面サイズが大きいので、どうしても FLASH の話は避けて通れないのではないかと。iPhone と違って割り切る事は難しいように思えますが、いかがなものでしょう?

本田さんトコの掲示板
 あり?メアドと URL 入れたら書き込めた。必須入力項目じゃないハズだし、必須入力項目なら別のメッセージが出るハズなんだけど...?

今日の (俺的) 神曲
 "ジプシー・キングス" の "インスピレーション"。





 BACK   古いのを読む   新しいのを読む