日本Delphi振興会 | Delphiはじめて物語 | Delphi壁の穴 | Delphiアクセサリ | Delphiリンク互助会 |
日本Delphi振興会
1999年のつれづれ記へ一番上へ1998/12/18
1998/11/21
- Windows95で作ったアプリは大抵Windows98でも動くのだが、決定的な違いがある。それはフォントだ。Win98では「MS UI Gothic」が標準フォントになっている。1バイトカナでデザインしたものは気にしなくても良いが、2バイトカナでデザインした場合、Win98では見た目に違和感が生じる。Windows95でMS UI Gothicを使うにはInternet Explorer5のベータ版を入れてやればいいのだが、危険極まりないのでご遠慮したいという人もいるだろう。そういうあなたのために、今回は特別にMS UI Gothicの差分ファイルを差し上げましょう。IE5に付いてきたオリジナルのCAB版(Msgotupd.cab/73KB)と使いやすいように自己解凍書庫版(Msgotup.exe/87KB)を作ったので、お好きな方をダウンロードして下さい。MS UI Gothicで設計したアプリをそれがないところで走らせると自動的にMS Pゴシックになるので文字化けすることは無いと思う。ちなみにFormのFontプロパティを変えてやればその上にあるコンポーネントのフォントも自動的に同じものに変わるようになっている(各コンポーネントの ParentFontプロパティがTrueの場合)。
- ええと、Delphi-MLの方で「PageControlのタブを実行時に作ってついでにRichEditもタブの上に作りたいなー」という質問があり、その回答をサンプルプログラムでしたので、それをアップロードしました。これはつまりDelphiのエディタみたいな事がしたいというわけですね。作るまでは比較的簡単に出来るのですが、作ったあとそのコンポーネントに対していろいろ行う(プロパティを変えたりイベントを取ったり)するので結構悩むんです。正解は「FindComponent」を使います。
それから、IE4でやってるURL自動入力のコンボボックスを実現する方法を壁の穴の一番下に書きました。文字列をぐちゃぐちゃといじってめんどくさいかな、と思ってたのですが、比較的簡単に出来て「ふっ、MSちょろいぜ!」とか一人で悦に入ってます。そしたら最近IE5のベータが出て、なんでも自動入力じゃなくって候補を下に一覧で表示するというIMEの候補ウィンドウみたいな感じになるそうです。うー!せっかく作ったのになぁ。
で、なんでこんなの作ってるのかというと、IE4のOCXである「TWebBrowser」を使ってタブ管理できるブラウザを作ろうかな、と考えているからです(このOCXはDelphi-MLでも最近話題に上がっていて結構使ってる人が多いみたい)。でまあ、半分くらい出来たのですが、Delphiが悪いのかTWebBrowserがバカなのか分かりませんが、ホイールマウスのスクロールが効かないんですよ。わたしはホイールスクロールを多用してるので、これが出来ないブラウザを使う気にならない。使う気にならないと作り続ける気力がなくなる、それがフリーウェア作者の気・持・ち(うふ)。まあ、それはいいとして、なんか由木尾さんが一生懸命頑張ってコンポーネント化するそうなので、そちらが出来たらちゃっかり拝借して完成させようかなぁ、と他力本願な事を考えている今日この頃です。1998/10/30
- いやぁ、一年ぶりに壁の穴の「アプリケーションを覗く」を更新しました。この一年でたしか3通くらい「更新しろなんだこのやろ!(ビートたけし風)」というメールを頂戴しまして、その度に更新しようかと心に誓いつつ今日まで来てしまいました。あぁぁ。でもまあ、今回追加した分で基本的な操作は出来るでしょう。ほんとはメニューを操ったり、SendMessageの他にPostMessageも紹介したりしたかったのですが、めんどくさいのでまた1年後(?)。
1998/10/16
- あらら、3ヶ月ぶりに更新するこのページ。ええと、まずは、わたし会社辞めまして、データベースから足を洗いました。ついでにデータベース恐怖症になりました。Delphiでのデータベースアプリ開発はたぶん、VBや何やらを使うよりも作りやすくて高速なんだろうけれども、でも私はもう勘弁して欲しい。作るのがめんどくさいったらありゃしない。もしあなたに開発のおはちが廻ってきたら逃げた方がいいです、ほんとに。
- Delphi4が発売された。いつもならインプライズに貢献するためにすぐバージョンアップするのだが、MLでの噂が芳しくない。開発環境の不具合やコンポーネントでのバグが出ているそうだ。とりあえずはD3で間に合ってるので急いでバージョンアップする必要はないけど、優待価格の期限が切れるまでは様子見ですな。
1998/07/13
- ついに自作アプリ「Change-moi」のソースコードを公開した。「Delphiアクセサリ」に置いてある。もともとソースの公開には抵抗がない。メールで「あの機能はどうやってるのか教えてくれないか」と質問されてもほいほいと教えるし。ただ、Delphiはフリーのコンポーネントが多く出回っているため、Change-moi以下わたしのアプリには何らかの形でフリーコンポが使われている。そうすると公開してもコンパイルもできないし、かなり不都合じゃないか、と考えていたので公開はためらっていた。けど、今回中学生から、Change-moiのコードを見せてくれないか、とかなり大胆なメールが来た。そうか。ついにこの日が来たか......。「窓○手」に対する感情はもはやないし、Change-moiの開発も無期限延期したし、公開しても別にいいかな、と思うようになった。でもねぇ、ソース見せるって結構恥ずかしいんだよね。特にChange-moiはわたしがDelphiを覚え始めた頃から作り、バージョンアップでつぎはぎだらけなので、ソースがめちゃくちゃ汚い。自分で見るのもいや。考えるのもいや。出来ることならふたをして見たくない。だから他人様に見せるのがすんごくはばかられるんだけど、でも勢いで公開しちゃえ!ソース見て笑うなよ!!
1998/06/17
- データベースのおべんきょを始めてから2週間、実際にアプリを作り始めてから1週間が経過した。やっぱり趣味で作るのと会社という場所で作るのとではかなり違う。趣味の場合は「分からなきゃほっといてまたいつか」で済むけど、会社では「作らなきゃいけない」のでせっぱつまり度が高い。そのため「情報収集が命」である。Delphi MLの過去ログ(ほんと役に立つね)、INPRISEに掲載されているTIPS、ちまたにあるコンポーネント、参考書、ありとあらゆる物を見て回る。危機感がある分、覚えも早い。でもまだまだ、やっと幼稚園に上がった程度の知識しかない。会社には「Delphiの出来る人」として入ったので、いまさら出来ないとは言えない。それがまたプレッシャーとなって、「なんとかしなければ」と集中力が高まる。なんだか短期集中学習みたいである。
- データベースの検索にはワイルドカードが使えて、例えば「あいう*」で検索すれば「あいうえお」も引っかかる。でも「*いう」とか「*いうえ*」ができない。ワイルドカードは後ろにしか付けられない仕様なのだ。あー、また出た。Delphiの中途半端さ。仕方ないので一からコーディングし直し。検索のアルゴリズムを全て自前で作る羽目になってしまった。出来たからいいけどさ。でもなんか納得いかんのよね。Delphiにはこういう「おまけ機能」がちらほらとあって、喜んだ瞬間、悲しみに陥ってしまう。おまけはいらないからもっときちんと作ってくれ!
1998/06/03
- うわー、2ヶ月ぶりにここ書きますねー。今日はDelphiのリンク情報を更新しました。リンク切れ修正や追加を行っています。自慢じゃないですが数あるDelphiサイトの中でもわたしのところがリンク紹介数トップだと思いますよ(やっぱり自慢)。今回はわたしのDelphiお気に入りサイト57をパックしてダウンロードできるようにもしておきました。IE専用ですが、ネスケへのコンバーターもごろごろあるのでネスケ用にも使えるでしょう。こんなにたくさんリンク張ってる割には逆にわたしの所へ張ってくれる所って少ないのよね。嫌われてるのか、それともタイトル画像が変だから避けられてるのかなぁ。
- 今度仕事でデータベースアプリケーションを作ることになったんだけど、わたしはデータベースそのものがはじめてだからけっこう厳しい。Delphi3に付いてくる開発者ガイドはなんであんなに難しいんだろう。もうすでに基礎が分かってるものと見なして書いてあるから全然ちんぷんかんぷんである。そこで、Delphi1の開発者ガイドを引っぱり出して読んでみると分かりやすーい!Delphi1の時は誰もが初心者だから、データベースアプリの作り方に関して丁寧に解説してくれているのだ。サンプルアプリの作り方も書いてある。ボーランド、じゃなかった、インプライズ(変な名前!)はヘルプやマニュアルの作り方がなんであんなに下手なんだろうね。特にDelphi3に付いてくる初心者ガイドは最悪。サンプルアプリケーションの作り方の解説がすごく貧弱になった。だからわたしは未だにDelphi2の初心者ガイドを使っている。絶対手抜きだね。せっかく社名変えたんだから人員増強していいマニュアル作ってよ!
1998/03/27
- 下で紹介したサンプルですが、一部のパソコンでウィンドウをドラッグできなくなるようで、バグを修正しました(156行目付近)。
- Change-moi をいよいよコンパネ化したのだが、断念する。理由1、パラメータが受け取れない。例えば「control.exe Chmoi.cpl /supmoi」と指定してもエラーになってしまう。理由2、最小化してくれない。これじゃなんのために最小化ボタンをタイトルバーに乗っけたのか分からない。あーあ。ついでに壁の穴に書いたコンパネ作成方法を一部修正する。
1998/03/22
- はああ、疲れた。何が疲れたかというとボタンに疲れたのである。拙作「Change-moi」には、ウィンドウの一番右上に「?」ボタンを付けている。「?」ボタンを押して機能が知りたい場所をクリックすれば、ポップアップヘルプが出てくるアレである。で、ウィンドウズの仕様上、このヘルプボタンと最小化ボタンが両立しないのである。またしてもバカWindowsのバグといわねばならない。フォームの BorderIcon プロパティの biHelp と biMinimize を両方Trueにしてご覧なさい。「?」ボタンは出てこないで最小化ボタンのみ表示される。つまり「?」ボタンを表示させるには biMinimizeをFalseにする必要がある。あーやだやだ全く。で、仕方ないから SpeedButtonで最小化ボタン風のボタンを作ってフォームの上に乗っけておいた。タイトルバーの上には乗せられないので仕方なくフォームの右上にくっつけて置いたのである。しかし、間抜けである。悲しい。会社の同僚に見せたところ「ダサダサ(かっこ悪いの意)」とこき下ろされてしまった。非常に悔しい。ここは一念発起、最小化ボタンをタイトルバーに表示させることに挑戦した。考え方は非常に単純である。タイトルバーの上に最小化ボタンのビットマップを描画して、マウスがそこをクリックしたら最小化するようにし向ければよいのである。ああ、文章で書くとなんて簡単なんだろ。私はこれを実現するのに夜通しかかった。テレビの時計を見ると朝の5時42分。とっても眠いのである。疲れたのである。でも残りの気合いを投入して書こう!
さて段落を変えて話は本題に。まずタイトルバーの上に最小化ボタンを書く方法であるが、あるコンポーネントを参考にした。タイトルバーをグラデーション表示するやつである。以前、あのグラデーションはタイトルバーに絵を描いて実現してるようなことを目にしたことがあった。そこでDSPでそれらしきコンポーネントを探索・発見、ソースコードを覗いてみた。やってることは大体こうだ。まずフォームのデバイスコンテキストを取得。デバイスコンテキストっていうのはまあ、絵を描く場所みたいなものである。FormのCanvasはクライアント領域のみに描画可能でタイトルバーは対象外なのだが、デバイスコンテキストを使えばウィンドウ全てを描画領域にすることが出来る。次にそれをTCanvasに代入する。TCanvasには絵を描くための様々な便利ツールが用意されているので、その機能を利用するわけである。そしてTBitmapを作ってそこに描画する絵を描く。最後にTBitmapに描いた絵をTCanvasを用いてタイトルバーに絵を描かせるのである。タイトルバーの位置は GetSystemMetrics を使って計算する。それを元に描画位置を計算している。これで描画は一応完成。
次は描画した最小化ボタンをクリックすると最小化するようにし向ける方法であるが、これに一番難儀した。フォームの OnMouseDown イベントがタイトルバーの上で発生してくれないのである。いろいろ試行錯誤したところ(ああ、こんな一語で済ませてしまうとは...苦労が....)、カーソルが動けば何が何でも発生してくれる頼もしいウィンドウメッセージ「WM_NCHITTEST」を使うことにした。まずこれを捕らえる。で、ボタンの上に来たら SetCaptureControl する。これを使うとタイトルバーの上でもマウスイベントが発生するようになるのである。そうするとクリックしたときにフォームの OnMouseDown イベントが発生するようになるので、ここに Application.Minimize; と書いてやれば無事最小化するのである。まあ、この他の問題として、フォームが後ろに隠れるとせっかく書いたボタンが消えちゃうとか、押したときはへこんだ絵を描画するようにするとかいろいろとする事があったのだが、どれも何とか乗り越えて本物の最小化ボタンと見間違うようなものをくっつけることが出来た。まさか誰も描いてるなんて思わないだろうな。ふふふ。
さてさて、解説ばっかりでは意味がないのでサンプルコードを差し上げちゃいます。私の苦労を忍びつつ参考にして下さい。(^^ゞ (他にもっといい方法があったらどうしよう.....)
1998/03/21
- 先日紹介した秀丸エディタのテクニックであるが、現在制作中の「Change-moi 2.3」に使ってみた。使い方は簡単で、保存するところ一歩手前に「Form1.Visible := False ;」と書いてやればよい。すなわち、False > 保存 -> Close という課程を踏むようにする。やってみたらめちゃくちゃ良い。すごく終了が早くなった気がする。Change-moi の場合はレジストリのバックアップ作業に少々時間がかかっていたのでその分閉じるのが遅かったのだが、これをやると瞬時に設定が保存されている錯覚に陥る。素晴らしい!!!ほんと、使ってみて下さい。
- 終了する前にフォームを見えなくして早く終了したかのように見せかける、この発想の逆転をさらに逆転、アプリ起動時に取りあえずフォームだけは表示させておいて、表示し終わってから設定を読み込むようにすればあたかも起動が速くなった感じに見せかけられる。「Change-moi 2.3」ではそれにも挑戦した。なんせ Change-moi は環境設定ツールなため、読み込む設定がバカにならないほど多い。まあ、Delphiのおかげで読み込む早さは VBなんかより格段に早いのだが、やはり早ければ早いに越したことはない。ここで問題になるのが「フォームが表示し終わりましたよー」というイベントの取得である。OnCreate は表示前のイベント、OnShowやOnActivateもそうである。いろいろ試したのだが該当するイベントがなかった。そこで苦しいときの MLだのみ、Delphi-MLに早速お悩み相談した。そしたら帰ってきましたよ、回答が。わーいわーい。そこには「CMShowingChanged」をオーバーライドしろ、と書かれていた。詳しくはDelphi壁の穴のDelphiを覗くをご覧いただくとして、とりあえず成功。フォーム表示後に「シュルシュル」とハードディスクが音を立てて設定を読み込んでいる。読み込んでいる時間は砂時計が回っているがそれも1秒弱、人間の思考時間プラス動作開始時間を足しても1秒越えるだろうから特に支障はないであろう。この方法は万人向けじゃないけど出来るならやってみた方がおもしろいですよ。
1998/03/12
- かなり前に Delphi-ML質問して返答が得られなかったのであきらめていたのだが、先日また質問したら見事答えが返ってきてとってもうれしいことがある。それはシステムアイコンを再起動せずに変更する方法である。自作ソフト「Change-moi」にはフォルダなどのシステムアイコンを変更する機能があるが、再起動しないと変更が反映されなかった。しかたなくTweakUIのアイコン変更機能を利用して反映させていたのだが、はっきり言って恥である。他人の作ったアプリのお世話にならないとシステムアイコンも変更できない。無能をさらけ出しているようなものだ。しかし、やっとこさ自分のアプリから直接変更できるようになった。この悩みは私がChange-moiを作ってから半年以上抱えていたものであり、胸のつかえが降りて非常にいい気分である。万歳!Delphi-ML。ありがとう!いまいさん。早速壁の穴に追加させていただきました。Delkabe.pasの方にも追加しました。
- さらにうれしいことに、ファイルの関連づけを変更した場合にエクスプローラのアイコンを更新させる方法がMLに紹介された。これも結構重要な機能である。今の私には当面必要ないが、壁の穴に関連づけ変更の方法を書いているので、アイコン更新方法も追加した。ML様々である。
1998/02/24
- 「日本Delphi振興会」は今日で1周年を迎えました。トップページの「Burning Athena」に衝撃を覚える人が結構いて、中にはクラッカーのページかと思った人もいたりしました。「Delphiはじめて物語」はおおむね好評で、おもしろかった、参考になったという方からメールを頂戴しました。Delphiはプログラマのあいだでは認知されてきたものの、まだまだメジャーではありません。日本Delphi振興会はこれからもDelphiの振興に力を注いでいきます。だから皆さんもVBでプログラミングしてる人がいたら強引にDelphiに引きずり込みましょう。
- 以前どこかの雑誌で読んだのだが、「秀丸エディタ」などで有名な秀まるお氏がプログラミングについて語っていた。私にはとうていあんなすごいソフトは作れないが、一つだけ私にも皆さんにもまねできるテクニックがあった。それは「ファイル保存の高速化」である。普通、ファイルを保存してからアプリを終了するという一連の行為をする場合、まずはファイルを保存、それから Form1.Close; とやってアプリを終了させるであろう。しかし、秀丸エディタは違う。まず最初にウィンドウを非表示にしてしまうのだ。そしてそれからファイルを保存し、アプリを終了する。我々は無意識のうちに「ウィンドウが消えた=アプリが終了した」と思いこんでいる。秀丸エディタはそれを逆手にとって、まずウィンドウを非表示にしてアプリが終了したと思わせ、実は裏でファイルの保存を行っているのである。こうすることで、高速にファイルを保存して終了したかのように見せかけているのだ!私はこれを読んだときに感動すら覚えた。早々思いつかないテクニックである。皆さん、積極的にまねしましょう!
1998/02/14
- SysHotKeyコンポーネントに問題発生。これを使ったアプリが起動しているときに、スタートメニューからWindowsを終了させようとするとなぜか拒否されてしまう。ソースをいじって何とか直そうとしたのだが、どこをいじくっても直らない。しかたない、作るか。一念発起してSysHotKeyに変わるコンポーネントを自作することにした。いろいろと調べた結果、ホットキーをフックするのは簡単である。WindowsAPIの「RegisterHotKey」でフックしたいホットキーを登録。ホットキーが押されたメッセージを「WM_HOTKEY」で取得。フックを解除するには「UnRegisterHotKey」を使えばよい。というわけで、これらを使った「HookHotKey」コンポーネントが苦労の末完成した。Delphiアクセサリにあるので、ぜひ使ってみて下さい。
- 私はコンポーネントを作るのがむちゃくちゃ苦手である。他人様の作ったコンポーネントを云々するのは得意なんだけど。HookHotKeyコンポーネントも機能が単純な割には苦労した(というか単純なものしか作れない)。ほんとはHotKeyコンポーネントを継承しようとしたのだが、フォームに乗っけたとたんにエラーが発生して止まらなくなった。訳が分からず挫折。結局、一番簡単な TComponent から派生させることにした。だが、TComponentはウィンドウハンドルを持ってないので、WM_HOTKEY メッセージが取得できない。仕方ないので調べた結果、TWinControl ならばウィンドウハンドルを持っていると分かった。そこでここから派生させたのだが、フォームに乗っけたとたんまたもエラー続出、あきらめて再度継承元を TComponent に戻した。うーん、どうしよう。どこかにいい参考例はないかな、と考えた末、ひらめいた。Timerコンポーネントがあやしい。確かこのコンポーネントは WM_TIMER メッセージを取得しているはずだ。しかも継承元は TComponent だ。早速VCLを見る。こういうとき、Professional版を買ってよかったなー、と思う。コードを覗いたところ、やはり当たった。内部でウィンドウハンドルを作成して、それに基づいて WM_TIMER を捕らえていた。使える、いける!すぐさま該当個所をコピー・ペーストしてちょちょいと書き直した。かくしてHookHotKeyコンポーネントは WM_HOTKEY メッセージを受け取れるようになり、WinExiterの最新版に搭載されたのである。よかった。
1998/02/08
- 下で紹介したSysHotKeyコンポーネントを使ってやっと新しいWinExiterが完成した。それにしてもこのコンポーネントは難物であった。私はてっきりHotKeyコンポーネントと親和性が高いと期待していたのだが、全然違い、全くオリジナル。HotKeyコンポーネントと連動させるのに苦労した。ソースコードも若干書き換えさせてもらった。あと、NTでの動作がこれでひっかかった。WinExiterはWindows終了ソフトであるが、NTを終了させるときになぜかこのコンポーネントのせいで終了できない。結局、終了処理をする直前でこれをDestroyさせ、何とか成功した。しかしまあ、使えるだけでも感謝しなくちゃ。中には全然だめなコンポーネントだってたくさんあるんだから(人のこと言えないなぁ)。
- Delphi-MLも一年前とはうって変わって高度な質問がたくさん出て私はもっぱら読む人になっている。特に、データベース・グラフィック・OLEは私にとって未知の領域であり、質問や回答を読んでもよく分からない。かといって基本的な質問ならば誰かが答えてくれるだろうから、あえて私が出てくる必要もない。それにしても少し前に登場した泉さんはどうしたのかなぁ。嵐のように質問して風のごとく去っていってしまった。彼が作ったゲームは果たして完成したのだろうか。
- FLMASKをご存じでしょうか。あの有名なマスクを付ける(はずす?)ツールです。裁判沙汰にもなりましたが、結局著作権は原作者からどっかの会社に移ったそうです。で、FLMASKは実はDelphi製です。Ver.3が出たのでダウンロードし、立ち上げてみたらあらびっくり。Toolbar97が使われていました。こんな所にまで波及していたんですね。(FLMASKの用途については言及しないように)
1998/02/03
- 今日もまたコンポーネントをご紹介。おなじみ Delphi Super Page で見つけたのは、「SuperTimer(supertim.zip)」コンポーネント。これは、自作アプリ「登録タイマー」に使用した。本当は「Delphi3 Q&A 150選」についてくる「MMTimer」を使いたかったのだが、どうもこのコンポーネントは、MediaPlayerコンポーネントと相性が悪くて使い物にならなかった。そこで登場、「SuperTimer」。これはタイマーを別スレッドで動かしてくれるので、タイマーの動きに影響が及びにくい。そのため精度も向上している。使い方もTimerコンポーネントと同じである。
- またまたコンポーネントをご紹介。キー操作をトラップしたいと思ったことはありませんか?特に常駐型アプリを作っているあなた。ホットキーで動作させたい機能はありませんか?そんなときには「SysHotKey(syshot.zip)」。フォームに乗っけてちょちょいと設定すれば、あっという間にキートラップが可能になります。これは自作アプリ「WinExiter」に使う予定です。さらにシステム関係の動向を監視したければ「Watch(watch.zip)」コンポーネントはいかが?両方ともサンプルがついてくるので分かりやすいです。どちらともDSPのDelphi 2.0のInVisible Componentsにあります。
ただし、SysHotKeyをDelphi3にインストールするには注意が必要です。なぜかソースコードに「register」が書いてありません。registerはコンポーネントを登録する際に重要な手続きです。これが書いてないので登録できませんでした。というわけで以下の方法を使ってソースコードを修正してください。
- Source\Componntフォルダにある SysHot.pas を開く。
- implementation節のすぐ上に、「procedure Register;」と書く。
- 一番下へスクロールし、「end.」の上に、
procedure Register; begin RegisterComponents('System', [TSysHotKey]); end;と書く。- Binフォルダにある「SysHot.dcr」をSyshot.pasと同じところに置いて、登録する。
1998/02/01
- 今回から始まったDelphiつれづれ記。今日お話しするのは、「Toolbar97」にしましょう。最近、オンラインソフトでよく目に付きますね、ToolBar97。これを見るたびに、「ああ、使ってる使ってる」と喜んでます。私が作ったコンポーネントでもないのになぜでしょう。確か去年の秋頃でしょうか。私がDelphi-MLに一通のメールを出しました。内容は、DelphiについてくるCoolBarはフローティング(ツールバーをドラッグするとウインドウになるやつのこと)しないので、そういうコンポーネントを知らないか、といったものでした。しかしそれに対する返事が芳しくなかった私は自力で探すことにしました。探すところはもちろん「Delphi Super Page」。通称 DSP。Delphiユーザーなら決して足を向けては眠れないほど多彩なコンポーネントが目白押しに登録されているサイトです。「困ったときにはDSP」が私の座右の銘(?)です。グルグルと探し回って、とにかく「Toolbar」と説明に書いてあるコンポーネントを片っ端からダウンロードしました。Toolbar97もその中に含まれていました。で、使ってびっくり。Office97のツールバーそっくりです。私はさっそくこの件をDelphi-MLへ送ったのです。かくしてToolbar97はDelphiユーザーに広まることになりました。紹介しただけなんですが、それでもいろいろなところで使われていると嬉しいものです。使ってみたことの無い方はぜひ試してみてください。これは Comctl32.dllの最新版も要りませんし、面白いほど簡単にツールバーができてしまいますよ。(さっき見たら、Ver 1.6からシェアウェアになってた。うーん、欲が出たのか、それとも大盛況で困ったからシェアにしたのか。でも使ってみたけどなぜかソースコードもついていて、きちんと使えちゃいました。しかし2.0からは怪しいな。)
- Toolbar97はOffice97系、つまりMicrosoft寄りなので、アンチMS派には「PanelManager」をご紹介しましょう。これは、Netscape Navigator4 のツールバーを模したコンポーネントです。ねすけ4を使ったことがある人はわかると思いますが、あの開いたり閉じたりできるツールバーですね。それとそっくり。これのいいところは、普段折りたたんでおけるところです。必要になったら開けばいい。普通のツールバーだと使わないときは表示メニューとかで非表示の設定をする必要がありますが、これはクリック一つで表示/非表示がコントロールできる。用途によっては Toolbar97 よりも威力を発揮します。私もこれを自作ソフトの「Change-moi 2.3」に使う予定でして、なかなか面白いですよ。
リンクは日本Delphi振興会から張ってください。