Double-XX によるアプリケーションの作成



 CompileIt! に付属している Double-XX/Lite を使ってみたので、その使用感など書いてみます。

 動機

 とある XCMD のテストのために、MUSICムービーを MIDIシーケンサで演奏するということを頻繁にしております。 MUSICムービーを MIDIシーケンサにドラッグドロップするだけで演奏出来るのは、システムの Mac OS Easy Open のお陰です。で、この際、システムフォルダに「〜(トランスレート済み)」というファイルが作られる訳ですが、このテンポラリファイルはシステムが削除してくれません。放っておくとどんどん溜まって、ハードディスクを圧迫することになります。

 このフォルダを見つけて中身を削除する XCMD を作りました。 Mac OS Easy Open コンパネの中のリソースを覗いてフォルダを特定し、その中のファイルを片っ端から削除する XCMD です。このままではハイパカを起動しないと使えないのですが、ふと思い出して CompileIt! ディスクの中の Double-XX/Lite を引っぱり出してみました。このツールは、XCMD をアプリケーションに変換するというものです。

 手順

 まずは Double-XX/Lite をコピーして、てきとーな名前を付けます。今回は「TransCleaner.XX」としてみました。このスタックが一種のプロジェクトファイルのような働きをします。

 CompileIt! でアプリ化したいXをコンパイルして、TransCleaner.XX にインストールします。今回は CleanupTransFlder という XCMD です。注意しないとならないのは、この XCMD 内からは HyperTalk がほとんど使えないことです。コンパイル後に Analysis カードを確認して、テキストコールバック(左のフィールドにリストアップされるもの)が無いことを確認して下さい。

 次にこのXを動かすための "startUp" というXを作ります。これはアプリが起動した時に自動的に実行されるもので、いわゆるメインルーチンのような働きをします。複数の XCMD を使う時はここから呼び出す訳ですね。今回はXをひとつ起動して終了するだけなので、
      on startUp
        cleanupTransFlder
        domenu "Quit"
      end startUp
としてコンパイルします。もちろんこの XCMD 内で(他の XCMD を呼び出さずに)全てを行っても良いのですが、バージョンアップや保守を考えると、複数の XCMD に分けておいた方が都合が良さそうです。

 これで必要なXは揃いましたから、アプリの設定に移ります。

 まず TransCleaner.XX スタックの Resources... ボタンを押して、必要なリソースを選択します。今回は先程コンパイルした CleanupTransFlder と startUp のみなので、この2つをクリックして黒丸を付け、他のものは黒丸を除きます。必要なら Add File... ボタンで他のファイルのリソースも取り込めます。左側のフィールドをクリックしてリソース編集を終えます。

 次にメニューを編集するために Menus... ボタンをクリックします。予め用意されていたメニュー定義文字列が右側に現れます。このメニューを編集して、自前の XCMD を呼び出すようにするのが本来的な使い方ですが、今回は XCMD をひとつ実行してすぐ終了するアプリなので、File メニューの Quit 以外は全て削除してしまいます。

 アプリのアイコンは右側にあるものが使われます。このアイコンを編集することも出来ます。(所詮モノクロですが・・・)  カラーアイコンを付けたい場合は予めカラーアイコンを XXスタック内に作っておくか、アプリを作ってから ResEdit なりで編集することになります。

 完成

 Build It! ボタンをクリックすると、一瞬でアプリが出来上がります。実にあっけない。完成したアプリケーションのファイルサイズは40K弱でした。 XCMD のサイズは3K強ですから、アプリとして動作するための部品やアイコンなどは37Kくらいしか無いことになります。一切のインターフェースを持たないことを差し引いても、まぁリーズナブルじゃないかと思います。

 出来上がったアプリケーションをダブルクリックすると、一瞬で仕事を終えてすぐ終了します。いやー、速い(笑) なんとなく HyperTalk の遅さを想像していましたが、実行しているのは XCMD とその他のコードだけなので、遅くなる要因は一切無いですね。

 インターフェースについて

 Double-XX で作ったアプリケーションは、HyperCard から完全に独立しています。当然 HyperCard のカードやボタンは一切使えません。ウィンドウやダイアログを使いたい場合は、外部ウィンドウを作る XCMD や、ダイアログを表示する XCMD を作ることになります。 Double-XX にはサンプルアプリケーションとして TinyEdit が付いており、このソースを覗くことも出来ますが、たかがテキストエディタを作るのにこれだけソースを書かなければならないかと思うとうんざりしますね(^^;)

 ウィンドウやダイアログが使いづらいとなると、おのずから選択肢が限られてきます。今回のように起動して作業して終わるだけの、一切のインターフェースを持たないアプリか、さもなくばドラッグ&ドロップでファイルを処理するアプリです。

 Lite版の制限

 CompileIt! に付属している Lite版では、XCMD から使える HyperTalk に制限があります。というか、XCMD からほとんど HyperTalk が使えないと言った方がいいでしょう。製品版の Double-XX は HyperTalk をフルサポートしており、HyperTalk を書く気楽さでアプリケーションを作ることが出来るようです。

 また Lite版では AppleEvent が使えません。これはファイルのドラッグ&ドロップが使えないことを意味します。インターフェースを作るのに外部ウィンドウのプログラミングが必要となると、ドラッグ&ドロップのアプリケーションを作りたくなるのですが、そのためには製品版を入手しなければなりません。

 TransCleaner について

 完成したアプリケーションをアップしておきます。上記の他に、規定に従って RoyalSoftware のコピーライトを表示するためのダイアログ処理 XCMD が加わっています。このダイアログは少々うっとおしいのですが、起動項目として使う場合にはダイアログを出さない工夫をしてありますので、良かったら使ってやって下さい。 CompileIt! のソースが同梱されています。  >>TransCleaner 40k

 日本語マニュアルについて

 Double-XX/Lite のオンラインマニュアルを日本語に訳しました。欲しい方は以下のリンクを参照して、私宛にメールを送って下さい。配布は CompileIt! の正規ユーザーに限られます。以前 CompileIt! の日本語マニュアルを入手された方は、その旨メールに書いて頂ければ住所などは省略して構いません。 >>日本語マニュアルの配布について


inserted by FC2 system

CompileIt! Lab.

UDI's HomePage