XCMDで広がるHyperWorld
RinaldiコレクションによるHyperCard徹底活用
MacUser Japan誌で1996/7号から6回にわたって、F. Rinaldi氏のコレクションを利用してハイパーカードの可能性を探る記事を連載しました。 これは前連載「ハイパーカードでつくるオフィスシステム」が、原則としてHyperTalkのみを使ってどれだけのことができるかを検討したのに対し、その制約を外してXCMDをフルに使った場合、ハイパーカードの可能性がどれだけ広くなるかを紹介する試みです。
連載バックナンバー
連載の全テキストです。データ量を減らすため、画面コピーは各号1点のみに絞っています。
1996/7号:文字列を自在に、軽やかに
HyperCardはユーザーのイマジネーションで幅広い表現や実用スタックを生み出せる柔軟な環境だ。XCMDで機能を拡張すればその可能性は更に広がる。10年に及ぶ歴史が育んだ定番ツールの使い方を研究し、HyperWorldを味わい尽くそう。
【XCMD】ExtractItems, FullFind, FullReplaceほか
【応用】テキストベース住所録、メールログのHTML変換スタック
1996/8号:ファイルと移動の日々
スタックも含めて、コンピュータのデータは全てファイルとして保存される。だから電子的なデータ処理のためには、ファイルを操作する命令が欠かせない。ところが残念なことに、ハイパーカードはファイルの扱いが不得手である。この弱点を補うにはXCMDを使うしかない。
【XCMD】GetDir, GetFInfo, FileCopy, CopyFolder, FullMove, FullRemove, FullRename
【応用】複数のコンピュータのフォルダの内容をシンクロさせるHyperBriefcase
1996/9号:スクリプトを滑らかに
同じ機能を実現するスクリプトの書き方は何通りもあるが、利用者へのフィードバックの方法によってその使い勝手には大きな差ができる。XCMDは、こうしたスマートなスクリプトの作成にも威力を発揮する。
【XCMD】ListSelect, FullHpop, Promptoidなど
【応用】ファイル共有環境に適したSmallLauncher
1996/10号:カードの平面を越えて
ハイパーカードはバージョン2からカードとは独立した外部ウインドウを扱うことができるようになった。これを用いると、カードだけでは不可能な高度な処理も実現できる。
【XCMD】Textoid, Listoid, Tabloidなど
【応用】Textoidを使ったハイパーテキストの応用
1996/11号:スタック便利ツール
ここまではデータ処理のためのかなり実用的なXCMDを紹介してきたので、少し趣を変えて、スタック作成に便利なツールを取り上げてみよう。
【XCMD】FullDrag, FullBaloons, CopyRes, KillRes, FullReslistなど
【応用】ドラッグ機能やヘルプを持つリソースコピー用スタック
1996/12号:そして道は続く...
Rinaldiコレクションには、大技は発揮しないが小粋な働きをするもの、スタック開発者の想像力を刺激するものなど、貴重なXCMDがまだまだたくさんある。最終回はそういった小道具たちを一挙掲載する。
【XCMD】SetFileFlag, SetFInfo, FullSFPack, HowMany, Calendoidなど
【応用】条件を設定してファイルのタイプ/クリエータなどを一括変換するスタック
参考と補遺
Rinaldi's XCMD/XFCN Index
Rinaldiコレクションの全スタックの1行説明、ダウンロード(ftpへのリンク)、シンタックス、連載での解説へのリンク(あれば)をまとめました。やや大きめのファイル(44kb)です。
XCMDの入手方法
F. Rinaldi氏の最新XCMDは上記 Rinaldi Index のほか、Rinaldi氏自身による Rinaldi Collectionの専門サイト などからダウンロードできます。 また、コレクションを1つのスタックにまとめた http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/dev/card/rinaldi-xarchive-51.hqx X-Archive 3.1 は、サイズは大きくなりますが(695KB)便利です。
XCMDについての説明
ハイパーカードは外部命令(XCMD)、外部関数(XFCN)というコードリソースをスタックに組み込むことで、HyperTalkの組み込み命令だけでは不可能な操作を実行させることができます。基本的な説明はXCMDに関するいくつかの話をご覧ください。