アイコンの登録に四苦八苦 【失敗版】

SOFTWARE REPORT

REALbasic でビルド時にアイコンをつける方法を調べてみました。

結局は満足行く結果にはいたりませんでした。


REALbasic 3.5J

REALbasic は、ASCII が販売している Apple Macintosh 用のソフトウェア開発環境です。

プログラムに BASIC 言語を採用していて、それが適度にオブジェクト指向になっているところが便利です。個人的な意見では Microsoft Visual Basic よりも使い勝手がいいような感じです。

この REALbasic、いわゆるクロスプラットフォームの開発に対応していて、Macintosh 版のみならず Windows 版のバイナリも吐き出すことが出来ます。

けれどこれが一癖もふた癖もあってまともに Windows で動いたためしがありません。もちろん真剣に Windows で動くようにコーディングしてないからなのですけどね。けれど、そういう感じなので、真剣に Windows で動くように心がける余裕のない方は迷わず Standard 版を購入しましょう。Windows 用のアプリケーション作成は Pro 版の機能なので。

あと、まだ REALbasic が発展途上中なのか、それとも MacOS X がなのか、とにかくよく落ちます。なので少々の忍耐力も必要です。

 

それと OS X 版のアプリケーションの挙動が不信なところも気になります。日本語のファイル名で保存できないことがあったり…。今回の記事もそんな挙動不審な REALbasic と MacOS X の間で生まれてしまったものです^^;

 

アイコンの登録

アプリケーションにはいろいろなアイコンがついているもので、もちろん REALbasic にもアイコンを登録する機能があります。

なのでせっかくクリエイターコードも取得したことだし、ちょちょっとアイコンの絵をペーストしてコンパイル、で終わると思っていたのですけど、どうやらそれだけでは終わらないようです。

もともと Macintosh の世界に足を踏み入れてまだ1年も経っていないため、リソースフォーク周りで知らないことがいっぱいだったのですけど、それでも10時間もかかってしまうとは思いませんでした。しかもまだ完璧じゃないし…。

とりあえず、わかった範囲でつらつらと書いてみました。

 

アイコンのペースト

REALbasic ではアイコンを登録する際に、ペーストによって貼り付けます。

なので、アイコン用の絵を用意してそこに貼り付ければいいと思ったのですけど、残念ながらそれではダメでした。REALbasic 3.5J ではそうするとインフォメーションが表示されました。それによるとちゃんと ICON としての情報を貼り付けないとダメなようです。

REALbasic に必要な情報は icl8, icl4, ICN#, ics8, ics4, ics# の6種類。これらの情報がないと、REALbasic に登録することが出来ないということでした。

 

アイコンの作成

とりあえずちゃんとしたアイコンを作らなくてはならないということで、Apple 社のホームページから ResEdit をダウンロードしてみることにしました。残念ながら Classic 環境のものしかないようだったので、とりあえずそれをダウンロードしてみることにしました。

そしていろいろと試行錯誤をしてみましたけど、どうしても 「情報」 のところに作成したアイコンが表示されてくれません。

 

仕方ないので別のアイコンを作るためのソフトを探してみたところ、http://hp.vector.co.jp/authors/VA010318/ に、IconParty というアプリケーションを見つけました。しかもβ版ではありますけど MacOS X にも対応しているようなので、さっそくダウンロードしてみました。

使い勝手はなかなか自然な感じで、「アイコン」 → 「新規アイコン...」 からすぐにカスタムアイコンを作成することが出来ました。

それで必要な画像をぺたぺたとペーストして、保存して完成。しっかりと 「情報」 の欄に作ったアイコンが表示されました。

 

REALbasic に貼り付ける

作成したアイコンをいよいよ REALbasic に貼ってみます。

ファイルタイプのところのファイルに関連付けるアイコンにひとつ貼り付けて、「アプリケーションのビルド」 を立ち上げて、アイコンの絵のところに 「情報」 からコピーしてきたデータを貼り付けます。そしてアプリケーションをビルドしてみましたが、アプリケーションのアイコンが変更される気配がありません。もちろん、データファイルのほうも。

何度か試しているうちに、やっぱり情報が足りない旨を示すメッセージが REALbasic から表示されていました。

 

いろいろと試行錯誤を繰り返していくうちにわかったのですけど、どうやら 「情報」 からコピーした際に OS X だと、表示されている画像しかコピーしてくれないようです。なので、とりあえず Macintosh を再起動して OS 9.1 で再起動することにしました。

そして OS 9 の 「情報」 に表示された画像をコピーして、REALbasic にペースト。

そしてビルドしてみましたが、やっぱり反映されませんでした。ResEdit に貼り付けてみると、ちゃんとアイコンを構成するデータが貼り付けられるので、コピーしたデータには間違いはなさそうです。

 

デスクトップの再構築

Mac のアイコンについていろいろと調べてみると、更新されない場合にはデスクトップの再構築を行うといいという記述がありました。

なのでデスクトップを再起動です。Macintosh を再起動してデスクトップが表示される辺りまで option + command キーを押しっぱなしにしていると、デスクトップを再構築するかたずねられます。

Mac OS X のドライブを再構築してしまっていいのかわからなかったので、恐る恐るやってみましたけど大丈夫でした。

そして MacOS 9 が起動してみると、なんとちゃんとアイコンの絵が表示されていました。

 

どうやらうまくいったようなので、再び MacOS X を起動しなおしてみてびっくり。なんと OS X 用にコンパイルした方はアイコンが元に戻ってしまっているではないですか。どうやら OS 9 用の方は大丈夫みたいですけど。データファイルのほうもすっかり元に戻ってしまってます。

ただデータファイルのほうは関連付けが違っているせいのようで、OS 9 版の方のアプリケーションを立ち上げてファイルを保存すると、ちゃんと作ったアイコンが表示されるようになりました。ただ、いつのまにかすぐ戻ってしまっていたりして…。

 

OS X 用のアイコン

OS X が使用するアイコンはもっと解像度が高いもののようです。

どうやら OS X 用に 32bit の 128x128 サイズのアイコンが作成できるようなので、もしかするとこれがないためにアイコンがちゃんと表示されないのかもしれません。ということでアイコンを作り直してみました。

そして MacOS 9 から登録をしようとしてみて思ったのですけど、問題は 「情報」 からコピーしたときにちゃんと取れているかどうか…。

ためしにコピーを ResEdit に貼り付けてみると、やっぱり OS X 用のアイコンリソースが取れていないようです。一応そのまま貼り付けてコンパイルしてみましたけど、やっぱり以前と状況は変わりませんでした。

 

IconPaste ユーティリティ

REALbasic が出すインフォメーションによると、REALbasic の CD-ROM 内にある IconPaste ユーティリティを使用すればいいそうなのですが、肝心のそのユーティリティが見つかりません。

CD-ROM を検索しようとしてもなぜか Sherlock が落ちてしまったりして、根気よく探してもそれっぽいのも見つからず、やっとこさ Sherlock を落ちないように設定を調整して検索をかけてみても見つかりませんでした。英語版 REALbasic 3.5 になら入っているのでしょうか…。

 

もはやこれしか手が残っていなそうなので、いろいろと探してみることにしました。

 

すると…、なんと REALbasic のサイトに発見!! (あたりまえ?)

ちゃっかりと 「ダウンロード」 のコーナーに用意されていました。さっそく Carbon 版をダウンロードしてみます。

 

起動してみると、なにやらやたらと英文が表示されたウィンドウが現れました。

このアプリケーションは、ResEdit と組み合わせて使うようです。ResEdit から一つ一つをクリップボードにコピーしては IconPaste に貼り付けるの繰り返し。全てがそろったら、IconPaste 上でコピーを行って、それを REALbasic へ貼り付けます。

「情報」 からコピーしたものとかは貼り付けられなかったので、思わず苦労してしまいました。

 

結局、OS X 用のアイコンと呼ばれるリソースは対象外だったため、残念ながら失敗です。

 

成功せず…

結局、連続12時間ほど悩んでしまいましたが、有効な解決策は見つかりませんでした。

REALbasic が対応していないのでしょうか…、それにしては REALbasic のページはそのようなことは書いてないし…。う〜ん、きれいなアイコンが表示できたらよかったんですけどね。