ひとりごと:アーカイブ

Delphi2005(Pro)のlibフォルダにHTMLHelpViewer.dcuを見つけたってんで、uses にHTMLHelpViewerを加えたら何となく動いたHTMLHelpですが、wb for XPではファイルオープンダイアログボックスを先に開くとヘルプが開かなくなると言う問題を抱えていました。が、先にヘルプのAPIをいじれば大丈夫のようです。

ヒントは「ヘルプを先に開けば望み通り(のように見える)動作」というわけで、先にヘルプのAPIさわればいいんじゃないかと試行錯誤。最初はお手軽にHH_CLOSE_ALLなどやってみましたが意味無かったです。今回使ったのはHH_GET_WIN_TYPEMicrosoftR HTML Help 1.3 リリースの日本語文書はオンラインのMSDSで参照できますが、ヘルプウィンドウの見た目を受け取るコマンドです。これをフォームのOnCreateイベント以下略。

受け取るときに使う構造体に注意が必要です。DelphiのWindows.pasにある構造体は間違っているようなのでMSDNで正しいHH_WINTYPE構造体をコピーして定義し直しました。SETするわけじゃないからどうでもいいちゃどうでもいいんですけれどもね。

ところでAPIを説明した日本語文書、MSDNのMicrosoft HTML Help Downloadsから得られるのはリリース1.2のようです(英語は1.3か1.4)。落ち着いてゆっくり読もうと思っても、肝心のAPI部分は英語です。オンラインで見ろってことなのか、私が見つけられないでいるだけなのか。。

いろいろ悩んだヘルプですが、とりあえず見た目はちゃんと動いているように見えます。

2007.8.2追記。もっとスマートな解決方法がありました(かなり簡潔になりました。覚え書き作りました)。

wb for XP、ヘルプ未解決のまま機能増強です。

  • 色反転
  • グレースケール
  • 色反転&グレースケール
を加えました。モード切り替えしておけば連続処理も多分行けます(試してないけれど)。それと、表示に凝ってみました。グラデーションがあったので使ってみたのと、バージョンダイアログをフェードインフェードアウト。意味はないです。

ヘルプもちょっと凝ってみました。増えた分の機能は使い方がちょっとわかりにくいかなと思うけれど、わかりやすく説明していません。言い訳は「ヘルプって変更するのが面倒くさい」です。grep使えるように表現統一しておけば良かったかもです。

お客様

ここ最近、ほぼ毎朝お客様がお二方いらっしゃいます。特に何もおもてなしはしていないのですけれどもね。どうやら羽休めでお立ち寄りくださるようです。

(追記(2007/8/2)かなり簡潔になりました。覚え書き作りました)

Delphiの構成ファイルにHTMLHelpViewer.dcuというものを見つけました。フォームのUsesにHTMLHelpViewerと入れるだけで万事解決・・・。悩んだのに。せっかく作ったけれどCallHtmlHelp.pasは要らない。

正しく作成されたHTMLHelpに対応したユニットのようで、私のいい加減なchmファイルにはテキストポップアップがないために具合が悪いです。そのあたりはOnHintで前回同様のロジックを組んでカバー。chmファイルがまともならこんな小細工も要らないです。

ところで、悩んでいることがあります。愚作CallHtmlHelp.pasも、HelpScribbleにあるプログラムもHTMLHelpViewerも、アプリケーション使用中にヘルプが開かなくなると言うとても大きな同じ問題を抱えているのです。以下再現手順。

  1. wb for XPを起動して、
  2. メニューから開くを選択し、
  3. 画像選択のダイアログボックスが開いてるときに「?」ボタンを押して
  4. 適当にテキストポップアップを参照します。
  5. 適当に画像を選択、もしくはキャンセルしてメインの画面に戻ります
  6. 以降、ヘルプが開きません。

私の環境の問題なのどうかわかりませんが、とにかく気に入らない動作です。しかもこれ、起動後に一度ヘルプを見てからなら起きない現象だったりします。なんだろー・・・?

現状。ヘルプで試行錯誤しているだけなので機能は増えていません。ソースコードは少し綺麗にしたかな。

Delphi 2005 と HTMLHelp

wb for XPを地味にバージョンアップしています。意見要望は心に秘めておいて欲しいのに、オープンな時代だからと面と向かって要求を行ってくる人がいらっしゃいまして。面と向かって言われるならいいや、対応しようと。

  • 2007年7月20日 ver 1.2
    • 複数ファイル連続色替え機能追加。
    • ヘルプ追加。
  • 2007年7月21日 ver 1.2.1
    • ヘルプを状況依存対応。
    • 複数ファイルドロップしたとき、wb for XPを最前面へ表示する

連続色替え以外は機能は増えていなかったりします。ヘルプは言われていないけれど私の趣味で。今更な感じがしますが今日はHTMLHelpについてお勉強していました。

Delphi 2005はWinHelpとHTMLHelpの対応が中途半端に混ざっていてどちらもうまく動いていない感じがします。

今回はHTMLHelpを使うために、CallHtmlHelp.pasなんてものを作ってみました。難しいところはrtl(Windows.pas)に最初から作られているようなので、Delphiっぽく使えるように関数をいくつか。

以下、Delphiプログラムのうんちく。

画像の色交換(wb for XP)

画像の色交換ソフトを作りました。久しぶりにDelphi2005を立ち上げてWin32SDIアプリ作成です。

特定の色を交換するソフトって、普段は使い道がありません。仕事柄、背景が黒い画面があって、印刷すると真っ黒け。なもんで白黒反転して出力するのです。最近はペイントの色域反転を使っていたのですが、過去作ったwbr.exeという白黒反転ソフトを使っていた方からxp用が欲しいと言われて作ってみた次第。

XP用前提というわけでアイコンに8bit 48*48を含めてみました。アルファチャネルがなかったらマイクロソフトのサンプルソフトで複数のビットマップからアイコンが作れるんです(複数のビットマップ形式を理解して作っておかないといけないけれど)。・・・16bitとか24bitとかでアルファチャネル付きは期待もされていないでしょうし(笑)、そもそも面倒くさいので含めていません。

ソースコードはつけていますけれど、興味があっても見るのはやめておいた方がよいです。スパゲッティですよ!

花火

KiDSからの帰り、花火が見えました。運転しながら「どこかで花火やっているみたいですー」「花火見たかったのに呼んじゃってごめんねー」「いえいえそういうのは特にないというか花火やるのも知らなかったですし」とか言いながら店長さんを送り届け、寮に戻ろうと道を進んでいくと、徐々に増えていく車。ふと前方に花火が見えた。うちの地区の祭りの花火か?お祭りは昨日でしたが台風が予想されていたから今日になったのかなぁ。

渋滞にもならない程度のちょっとした混雑(というか、脇見速度かな)が、いやだなぁとか思いながら道を進みます。寮について、まぁ花火をカメラに納めようとしたらどうなるか試してみるのも良かろうと構えると、花火がやみました。もしやと思い時計を見ると九時。あぁ、九時ねぇ。九時かぁ。花火も止むよねー・・・。

ダートトライアル観戦

台風が近づいています。それはともかくダート観戦に行きましたです。なんだか空いている高速を抜けてたどり着いたのは丸和(那須)。2007年JAF全日本ダートトライアル選手権第6戦(vol.31 DCCS DIRT TRIAL)。

実は、貼り替えられた「ありかのアトリエ」ステッカー 丸和といえば島。

最初は雨もそれほどひどくはなくて、傘を差して観戦&撮影していました。が、そのうち雨脚と風が強くなりズボン前面がぬれてしまいました。たくさんの撮影というのは諦めて、車中より観戦。これは撮っておこうと思う車のみ撮影。車の中から観戦できるのが丸和の良いところかもです。人が多かったら出来ないけれど。

あちこちがウォータースプラッシュ。派手ですが、速度がのらなくなるのでいまいちです。泥水を吸うのか、止まってしまう車が少々。転倒する車が若干。路面コンディションは最悪の様子。

午後になって少しして雨が小降りになり、再び外から観戦(ズボンも大分乾いてきました)。路面状況が良くなってきたのか、そもそもクラスがそういう物なのかわかりませんが、走る車の速度が上がってきています。バンパーを割り落としながら走っていく車もいて、限界走行ですねー・・。

また少しだけ雨風が強まってきました。持って行っていたジャンパーはすでにずぶ濡れで、寒いので友人が用意してくれていたカッパを着ました(午前は着るタイミングを逸していたのです)。暖かくて良いです。

インプレッサよりもランサーが多いですねー。インテグラやシビックの他にストーリアとかブーンとか結構走っていました。DCCS(ダイハツカークラブスポーツ)主催だからかな?

帰り。行きも帰りもアクアラインを使っていません。行きも帰りも私は助手席にいました。

首都高湾岸から見える景色は、台風が過ぎた後のためかとても見通しが良く、圧倒されましたですよ。綺麗なんだけれどなんていうかこー・・・ちょっと怖いよ。

ヤマダ電機で 買いました。axionAXN4109T

DivXが再生できるBLUDEDOTの製品にも心惹かれるものがあったのですが、他に目的があったので店員さんに頼んで動作テスト。手持ちの、写真と動画を納めたSDカード(三洋のムービーデジカメXacti(DMX-C40)で撮影した映像(MP4))を使ってみます。で、再生できた方を購入しました(最上位モデルならまた違ったのかもしれません)。

ところで、この製品はTVチューナーが別売りです。もらい物のプレイヤーが同じメーカーなので、そっちのチューナー使えるかなとか思って引っ張り出してきたら、コネクタはあうけれども映らない。見たいのならばチューナーも買わなければということですねー。じゃぁまぁいっか。

思わぬ副産物があります。なんとDVDを再生できるのです(待て)。

部屋でPCを扱っているとき、蚊来襲。室内で蚊を見たのは久しぶりです。蚊に刺されにくいのは痒くなくて良いです。ヤブ蚊の方が食欲旺盛なようで、外でよくお食事されちゃってます。

ぷーんと、タブレットディスプレイで羽休め・・。って、おい。私じゃないんかい。蚊にとっては私よりもタブレットディスプレイの方がおいしそうなのかなぁ・・。蚊に刺されにくいのは痒くなくて良いです。

このアーカイブについて

このページには、2007年7月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年6月です。

次のアーカイブは2007年8月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アーカイブ