あまつぶ

8.13 20:00

 前にアプリケーションのアイコンにバルーンヘルプを追加したので、ついでにメニューやダイアログにもバルーンヘルプをつけてみることにした。バルーンヘルプをつけるにはバルーンヘルプ用のリソースを追加するのが手っ取り早いんだけど、ResEditでは編集する機能がない。そんなわけでこれまで対応してこなかったのだけど、Rezを使ってテキストから作ればいいというのがわかって、さっそくやってみることにした。
 Rez自体ほとんど知らないので、SimpleTextのソース、RezのBaloons.rを参考にしつつ、ふぉるだ振り分けのメニューにつけるバルーンヘルプとして、下のようなものを作った。
resource 'hmnu' (128, purgeable)
{
	HelpMgrVersion, hmDefaultOptions, 0, 0,
	HMSkipItem{},
	{
		HMSkipItem{},
		HMStringResItem {138,1,138,1,0,0,0,0}
	}
};

resource 'STR#' (138,purgeable)
{
	{"ふぉるだ振り分けのバージョンなどを表\示します"}
};
これはアップルメニューのヘルプ。hmnuリソースによってヘルプを追加し、表示されるヘルプはSTR#リソース。メニューの場合は、メニュー自体につけるヘルプ、メニュー項目につけるヘルプがある。アップルメニューのメニューにはつける必要がないから「HMSkipItem」となっている。その前にあるHMSkipItemは、指定のないメニュー項目に表示されるもの。フォントメニューとかみたいに各メニュー項目1つ1つ別のヘルプをつけない場合に使うもの。また、HMStringResItemでヘルプの文字列をSTR#リソースから追加するのだけど、左から順に、メニューが使用可能なとき、使用不可能なとき、チェックがついたとき、その他という感じらしい。だいたい普通のメニューでは前の2つを使うだけ、ふぉるだ振り分けではファイルの種類のポップアップメニューで「チェックがついたとき」というのも使ってみた。
 あとはダイアログやウィンドウにつけるヘルプなんだけど、ダイアログのアイテムにつけるヘルプの作り方がいまいちよくわからない。参考にできるソースがなかったのでBaloons.rを見て
resource 'hdlg' (128,purgeable)
{
	HelpMgrVersion,0,hmDefaultOptions,0,0,
	HMSkipItem{},
	{
		HMStringResItem{{0,0},{0,0,0,0},168,1,168,1,168,1,168,1},
	}
};

resource 'STR#' (168,purgeable)
{
	{
		"へるぷのてすと"
	}
};
こんなソースを書いてみたのだけどヘルプが表示されなかった。あとはウィンドウのヘルプとウィンドウの領域ごとのヘルプ…のはずだったんだけどダイアログで行き詰まってしまったので今日はここまで。サンプルにできるソースがあったらいいんだけどどこかにないかしら…。IMのHelp Managerを読んでみたけどこれでいいような気がするし。なんかミスがあるのかもしれないからもう少し試してみることにするか。

 そうだ。浜田高校、初戦突破おめでとう。去年はたしか初戦で押し出しさよならで負けたんだったっけ…? 高校の前までいったことがあるのは浜田高校だけだし、今年はがんばってほしいな。
8.13 02:00

 ぱらぱらと今までの過去ログ(?)を見ていたら、タイプミスが結構ある。こういうのってなおすべきなのかどうなのか迷うところだけど、面倒だからいいか…(笑)。ミスを発見した人は「あ、間違ってる」と思って笑ってやってください。あとアップルスクリプトのスクリプトを載せたところでテーブルの横幅が広がってしまっているところがあったけど、あれは直したほうがいいかな。アップルスクリプトで疑似改行ってどうやるんだっけ…。HyperCardと同じなのかな?

 HyperCardっていえば、HYPERCARD PARKでベンチマークのことが話題になってる。リアルタイムのゲームを作ろうと思ったらうまくスピードを調整してどの機種でも同じように動くようにしないといけないけど、HyperCardでそれを実現するのは結構難しい。ぼくが以前にPB145Bで作っていたスタックを今のマシンで動かすと、速すぎてゲームにならなかったりする。
 そんなところからベンチマークの話が出てきて、ここでダウンロードできるSpeedCheckerというスタックで調べた結果がスタックフォーラムに書き込まれている。興味のある方は試してみてほしい(ついでに書き込みも…(笑))。これから、現在はBBSのサーバ専用で稼動しているPB145Bでもやってみるつもり(今LocalTalkでコピー中(笑)。遅い…)。
 しかしこの結果を見ると、機種による差がもちろん大きいけどHyperCardのバージョンによる違いも無視できない。やはりネイティブかどうかというのは実行結果に大きな違いをおよぼすようだ。

 しかし、ぼくがこれまでに作ったソフトで、PPCネイティブのバージョンをリリースしているものはかなり少ない。現在公開しているソフトでは、Geneva2Osaka、とんぷーすたっと、Racineだけ。他のソフトも一時PPCバージョンをリリースしたことがあったけど、動作テストできる環境がなかったこともあってすぐにやめてしまった。もちろん、ネイティブでなくても満足のいく速度で動くからっていう理由もある。速度を必要としなければ消費メモリも少ない68kバージョンで十分だし。
 ぼくが作っているようなソフトで、PPCネイティブにして劇的に動作速度があがった…というのは今までない。苦労してつくったとんぷーすたっとのPPCバージョンも、68kバージョンとたいして変わらないという結果だったし。機能拡張とかはできるだけPPCバージョンを作るほうがいいかなと思うが、パッチするToolbox関数がネイティブ化されていなかったらオーバーヘッドで却って時間を食ってしまう。PowerMacが出てすぐにくらべたらかなりネイティブ化率があがっているのだろうと思うけど、まだまだぼくが作るようなプログラムで差が出るほどではないのかもしれない。
 ふぉるだ振り分けにしてもらんだむかべがみにしても、ぼくの手元にはPPCバージョンも作ってある。ソースもPPCでコンパイルできるように書いてあるし、ちゃんと動作確認もしてある。が、わざわざアーカイブを2つ作るのも面倒だし(スペースも残りわずか…)1つにまとめたらアーカイブサイズも大きくなるしといった理由で68kバージョンのみをリリースしている。68kバージョンを使っても、最近のPowerMacなら68kMacで動かしたときより速いから特に問題はないだろうし。そんなわけで特になにか理由がないかぎり、68kバージョンのみをリリースしていくつもり。

to August 12, 1998 ↑ to August index → to August 14, 1998