これは RuntimeRevolution 1.1.1 のヘルプにある文書を邦訳したものです。この文書の文責はUDIにあり、またUDIはこの文書についての一切の債務を負いません。 間違いがありましたら eudio@chabashira.co.jp までお知らせ下さい。この文書は必要と思われる時に適宜アップデートされます。

Help -> Revolution Documantation -> Development Guide -> ... -> Why...



Why am I running out of memory?
なぜ実行時にメモリが足りなくなるのか?
==============

参照:
--------------
Why do I get a recursion error?, Why is Revolution taking more memory than its allocation?, Why is there already a stack with the same name?, About Revolution system requirements, Memory and Limits Reference, File menu > Close and Remove from Memory..., File menu > Move Substack to File..., View menu > Application Overview, alwaysBuffer property, delete variable command, destroyStack property, filename property, hasMemory function, stackFiles property

 Revolution はスタックフィルを開く時に、その内容を全てアプリケーションメモリの中に読み込む。つまり Revolution のメモリはアプリケーション作業用のエリアだけでなく、開いているスタックとそのサブスタックを全て保持しなければならない。

 もしメモリ不足が起きたら、以下のことを試しなさい:

* 開いているスタックを閉じる。

* 閉じたスタックがメモリ上に残っていないか Application Overview でチェックする。( destroyStack プロパティが false のスタックは、ウィンドウを閉じてもメモリ上に残っている) スタックを選択して Purge をクリックすれば、メモリ上から取り除くことが出来る。

* 大きなスタックは、必要な時に必要なものだけをメモリに読み込むように、いくつかのスタックファイルに分けることを検討する。

* 大きなビデオクリップやオーディオクリップオブジェクト、イメージを含んでいるスタックは、これらを別のファイルに分け、そのファイルを参照して表示するようにする。

* ハンドラ内で大きなグローバル変数を使っている場合は、グローバル変数の値が不要になった時点で削除して、使用していたメモリを解放する。

* Mac OS システムでは、アプリケーションメモリを Get Info(「情報を見る」)ウィンドウで増やすことが出来る。


Why are some menu items disabled?
なぜメニュー項目がグレイになっているのか?
==============

参照:
--------------
Why don't the menus appear when I open a stack?, name property

 Revolution のウィンドウ(あなたの作ったウィンドウではない)がアクティブの時は、開発環境の一部をうっかり変更したり削除してしまわないように、いくつかのメニュー項目がグレイになる。

 Revolution アプリケーションは Revolution で作られているので、全てのウィンドウやダイアログはスタックである。 'rev' という文字で始まるスタック名は、Revolution が予約している。 name プロパティが 'rev' で始まっているスタックは、Revolution 開発環境の一部である。

 もしスタックの name プロパティを 'rev' で始まる名前にすると、Revolution はそれを開発環境の一部であると解釈して、いくつかのメニュー項目を使えないようにする。スタックに 'rev' で始まる名前を付けてしまった場合は、他の名前に変えなければならない。

 ティップス: アプリケーションのウィンドウに 'rev' で始まる名前を付けたい場合は、スタックの label プロパティに希望する名前をセットして、name プロパティには 'rev' の付かない名前を入れる。


Why aren't window positions saved in my application?
なぜアプリケーションウィンドウの位置を保存出来ないのか?
==============

参照:
--------------
Why can't I save a stack?, Why does a stack window open in the wrong mode?, location property, rectangle property, windowBoundingRect property

 Revolution は各スタックウィンドウの大きさと位置情報を、スタックファイルに保存する。これは、スタンドアローンアプリケーションがスタックのファイルを保存しない限り、スタックウィンドウの位置が保存されないことを意味する。

 作業した時のスタックウィンドウの位置を保存するには、アプリケーションから以下のどれかを実行する:

* スタックを(アプリケーションの中ではなく)スタックファイルに置く。ウィンドウを閉じる時やアプリケーションを終了する時に、save コマンドを使ってスタックを保存する。これでウィンドウのサイズと位置がスタックファイルに保存される。

* アプリケーションを終了する時に、各ウィンドウの rectangle プロパティをプレファランスファイル(訳注:独自に作る必要がある)に保存する。アプリケーションを起動する時にプレファランスファイルからデータを読んで、各ウィンドウの rectangle をセットすれば、保存した時のサイズと位置を再現することが出来る。


Why can't I create a standalone Mac OS application?
なぜ Mac OS のスタンドアローンアプリケーションを作れないのか?
==============

参照:
--------------
Why can't I save a stack?, Supported Platforms Reference, How to create a standalone application

 Unix と Windows システムでは、Mac OS と OS X のスタンドアローンアプリケーションは作ることは出来ない。( Unix と Windows のスタンドアローンアプリケーションは、どのシステムでも作ることが出来る)

  Mac OS と OS X のアプリケーションは、Mac OS ファイルシステム特有のリソースフォークを含んでいるため、他のファイルシステムでは適応させることが出来ない。 Mac OS や OS X システムで起動するスタンドアローンアプリケーションを作るには、Mac OS か OS X システム上での作業が少し必要になる。


Why can't I display a stack as a normal window?
なぜスタックを通常のウィンドウとして表示出来ないのか?
==============

参照:
--------------
Why does a stack open to the wrong size?, Why does a stack window open in the wrong mode?, Why doesn't Revolution recognize a stack file?, Why don't the menus appear when I open a stack?, How to display another stack in the current window, , modal command, mode property, modeless command, palette command, style property, topLevel command

 Revolution では編集可能ウィンドウのことを 'toplevel' ウィンドウと呼ぶ。デフォルトでは、スタックは toplevel ウィンドウとして開かれる。 topLevel コマンドを使って、他のウィンドウタイプ(パレット、モーダルダイアログ、モードレスダイアログ)のスタックを、普通の編集可能ウィンドウとして開くことも出来る。

 スタックのモードを変えるには、Application Overview でスタックを選択して、Go ポップアップメニューから新しいモードを選ぶ。

 またスタックの style プロパティを変更して、モードを設定することも出来る。 style プロパティがセットされると、スタックは強制的にそのモードになる。スタックを開いてから topLevel コマンドを使ってもウィンドウのモードは toplevel にならない。この場合はスタックの style プロパティを toplevel に変えてみなさい。


Why can't I find a stack I just saved?
なぜ保存したはずのスタックが見つからないのか?
==============

参照:
--------------
Why can't I save a stack?, Why can't Revolution find a file I specified?, Why doesn't Revolution recognize a stack file?, How to find out the location of the current stack's file, File menu > Open Recent Stack, File menu > Save, defaultFolder property, mainStack property, name property, save command, substacks property

 保存したスタックがディスク上に見つからない時は、以下の項目をチェックする:

* 本当にその場所だったのか? デフォルトでは、Revolution はアプリケーションの入っているフォルダにスタックを保存する。しかしスタック(や、他の開いているスタック)が defaultFolder プロパティを変更していたら、スタックは別の場所に保存されている。

* 他のスタックのサブスタックとして保存しなかったか? Revolution は、複数のスタックをひとつのファイルに保存することが出来る。(ファイルの中にはメインスタックがひとつあり、その他のスタックはメインスタックのサブスタックである) もしそれがサブスタックであれば、サブスタックはメインスタックと同じファイルに保存されるので、サブスタックのファイルは作られない。サブスタックがどのスタックファイルに入っているかを見るには、そのファイルを開いてから、View メニューの 'Application Overview' を選択して、ファイル名の右向きディスクロージャトライアングルをクリックする。


Why can't I interrupt a handler?
なぜハンドラの実行を止められないのか?
==============

参照:
--------------
Why does an unwanted handler run?, Shortcut to stop a running handler, allowInterrupts property, cancel command, cantAbort property, pendingMessages function, send command

 通常は、Command - ピリオド( Mac OS と OS X システム)か Control - ピリオド( Unix と Windows システム)を押して、ハンドラの実行を止めることが出来る。これはデバッグ時に便利である。

 もしこのキーコンビネーションでハンドラを止められない時は、以下の項目をチェックする:

* スタックの cantAbort プロパティが true にセットされていないか? cantAbort が true の時は、スタック中の全てのハンドラでこのキーコンビネーションが効かなくなる。

* allowInterrupts プロパティが false にセットされていないか? このプロパティが false の時は、このキーコンビネーションでハンドラを止めることは出来ない。

* 一度止められた後で、自分が送ったメッセージによって再度実行されていないか? 自分自身を実行するメッセージを send コマンドで送っているハンドラでは、ハンドラの実行を止めた直後に再度実行されるので、実行が止まっていないように見える。(待機中のメッセージを取り除くには、cancel コマンドを使う)


Why can't I leave all lines of a list field unselected?
なぜリストフィールドの行が選択されてしまうのか?
==============

参照:
--------------
Why can't I select, copy, or paste text?, Why was the selected text deselected?, hilitedLine property, listBehavior property, select command, selectedLine function

 リストフィールドがアクティブになる(フォーカスされる)時、選択行が存在しない場合は、自動的に最初の行が選択される。フィールドがアクティブになるのは、ユーザーがクリックした時、タブキーで他のフィールドから移動して来た時、そして(そのフィールドがカード上の1番のフィールドなら)カードが開いた時である。

 自動的に最初の行を選択しないリストフィールドを作るには、以下のアイディアを試しなさい:

* フィールドの traversalOn プロパティを false にする。このフィールドはアクティブになっても行を自動的に選択しない。ユーザーがクリックした時に行が選択されるようにするには、フィールドの mouseDown ハンドラで行選択を実行する。

* リストフィールドより下のレイヤーにボタンを作る。 Unix と Windows システムでは、カードがオープンした時に一番下のレイヤーがアクティブになる。フィールドよりも後ろにコントロールを作れば、カードがオープンした時に自動的に最初の行が選択されてしまうことを防ぐことが出来る。( lookAndFeel が Macintosh になっている時は、このテクニックは使えない)


Why can't I resize a control?
なぜコントロールをリサイズ出来ないのか?
==============

参照:
--------------
Why can't I select a control?, Why does an object change size?, height property, lockLocation property, rectangle property, width property


 コントロールをリサイズするには、ポインタツールでコントロールを選択して、コントロールの周囲にある小さなハンドルをドラッグする。

 選択されたコントロールをリサイズ出来ない時は、以下の項目をチェックする:

* コントロールの lockLocation が true にセットされていないか? lockLocation が true の時は、ハンドルは(黒ではなく)グレイの四角になり、コントロールはリサイズも移動も出来なくなる。 lockLocation を false にしてからコントロールをリサイズするか、手動でリサイズする代わりにコントロールの height、width、rectangle プロパティをハンドラから変更する。

* そのコントロールはグループの一部ではないか? グループ化されたコントロールをグループ領域の外に移動すると、グループ領域から外れた部分は見えなくなる。まずグループを選択して必要な大きさに整えてから、コントロールを移動しなさい。


Why can't I save a stack?
なぜスタックを保存出来ないのか?
==============

参照:
--------------
Why aren't window positions saved in my application?, Why can't I create a standalone Mac OS application?, Why can't I find a stack I just saved?, Why doesn't Revolution recognize my stack file?, Why is there already a stack with the same name?, File menu > Save, File menu > Save As..., defaultFolder property, diskSpace function, mainStack property, name property, save command, substacks property

 スタックの変更をファイルに保存しようとすると、Revolution はまず保存前のバックアップを作り、ファイルの保存が終わってからバックアップファイルを削除する。これは保存処理を失敗した時にデータを失わないためである。バックアップファイルはオリジナル名の最後に ~ 文字を加えた名前になる。

 もしスタックの保存がうまく行かないときは、次の項目をチェックする:

* Revolution がエラーメッセージを表示したら、バックアップコピーを作るためのディスクスペースが不足しているか、オペレーティングシステムが禁止している場所にファイルを作ろうとしたか、ファイル名に ~ が付いてるスタックが(保存に失敗する前から)既に存在している。フォルダ内にスタックとバックアップファイルを保存するためのディスクスペースが充分あるか、名前に ~ が付いているスタックが同じフォルダに存在していないかを確認する。

* スタックの保存が成功しているのにそのファイルが見つからない時は、そのスタックは他のスタックのサブスタックとして保存されたのかも知れない。サブスタックを保存しても、独立したファイルは作られない。サブスタックは、そのサブスタックのメインスタックと同じファイルに保存される。スタックファイル内のサブスタックを見るには、View メニューから 'Application Overview' を選択し、ファイル名のところにある右向きディスクロージャトライアングルをクリックする。

 そのスタックがスタンドアローンアプリケーションである場合は、保存することは出来ない。( OS X、Unix、Windows システムでは、アプリケーションは自分自身を変更することは出来ない。互換性を維持するために、Revolution では Mac OS システムにも同じ制限を課している) スタンドアローンアプリケーションから別ファイルとしてスタックを保存することは出来る。しかしそのスタックをスタンドアローンファイル内に保存する事は出来ない。


Why can't I select a control?
なぜコントロールを選択できないのか?
==============

参照:
--------------
Why can't I resize a control?, Why can't I select a graphic?, Why can't I select, copy, or paste text?, Why doesn't a control appear?, Edit menu > Select All, Edit menu > Select Grouped Controls, Edit menu > Intersected Selections, Tools menu > Pointer Tool, layer property, mouseControl function, select command, selectGroupedControls property

 コントロールを選択するには、ポインタツールでクリックする。もしコントロールを選択できない時は、以下の項目をチェックする:

* そのコントロールはグループの一部ではないか? コントロールがグループ内にある場合は、Edit メニューの 'Select Grouped Controls' にチェックを入れてから、ポインタツールでコントロールをクリックする。

* グループを選択したい? グループを選択するには、Edit メニューの 'Select Grouped Controls' のチェックを外してから、グループ内のコントロールをクリックする。

* 選択しようとしているコントロールの上に何かが乗っていないか? 邪魔になっているコントロールを一時的に他の場所へ移動する。

* ポインタで選択するのが難しいコントロールは、メッセージボックスから select コマンドを使って選択する。


Why can't I select a graphic?
なぜグラフィックを選択できないのか?
==============

参照:
--------------
Why can't I select a control?, Why can't I select, copy, or paste text?, Edit menu > Select All, Edit menu > Select Grouped Controls, fill property, ink property, select command

 グラフィックの fill プロパティが false に設定されている場合、グラフィックの内側はグラフィックの一部とみなされない。

 fill プロパティが false であるグラフィックを選択するには、その境界線をクリックする。

 グラフィック内部を透明にしたまま選択を容易にするには、fill プロパティを true にして、ink プロパティを noOp にする。


Why can't I select, copy, or paste text?
なぜ copy や paste を選択できないのか?
==============

参照:
--------------
Why can't I select a control?, Why can't I use the arrow keys when editing a field?, Why do lines of text overlap?, Why doesn't the Tab key move to the next field?, Why was the selected text deselected?, How to prevent changing a field's text, How to select text in a field, Edit menu > Cut, Edit menu > Copy, Edit menu > Paste, Edit menu > Select All, cantModify property, copy command, lockText property, paste command, select command, traversalOn property

 ブラウズツールを使って、フィールド内のテキストを選択することが出来る。そして Edit メニューの 'Copy' と 'Paste' 項目を使って、テキストをコピーペーストすることが出来る。もし copy や paste を選択できない場合は、以下の項目をチェックする:

* スタックの cantModify プロパティが true に設定されていると、(テキストの選択とコピーは出来ても、)テキストをペーストすることは出来ない。

* フィールドの lockText プロパティが true に設定されていると、テキストを変更することは出来ない。(フィールドの traversalOn が true なら、ロックされたフィールドでも選択とコピーは実行できる)

* フィールドの traversalOn プロパティが false に設定されていると、そのフィールドのテキストを選択することは出来ない。

* implicit focus を使うようセットアップされた Unix システムでは、マウスポインタがスタックウィンドウから外れた時に選択状態が解除される。 implicit focus は Revolution で問題を起こすので、Revolution を使っている時や、アプリケーションを作っている時は、explicit focus を使うようセットアップすべきである。


Why can't I use the arrow keys when editing a field?
なぜフィールドを編集時に矢印キーが使えないのか?
==============

参照:
--------------
Why can't I select, copy, or paste text?, Why do lines of text overlap?, Why doesn't the Tab key move to the next field?, arrowKey message, navigationArrows property, textArrows property

 textArrows プロパティが false に設定され、navigationArrows プロパティが true である時、矢印キーはフィールド内の挿入ポインタの移動ではなく、カード移動に使われる。

 textArrows プロパティを true にすれば、フィールド内で矢印キーが使えるようになる。( textArrows が true の時、navigationArrows はフィールド編集に影響を与えることはない)

 Preferences ダイアログで 'Allow card navigation with arrow keys' をチェックするか、メッセージボックスから下の文を実行しても良い:

  set the textArrows to true


Why can't Revolution find a file I specified?
なぜ Revolution は指定ファイルを見つけられないのか?
==============

参照:
--------------
Why can't I find a stack I just saved?, Why doesn't Revolution recognize a stack file?, Why don't URLs work in a standalone?, About filename specifications and file paths, How to include a slash in a file path, answer file command, ask file command, defaultFolder property, name property


 Transcript でファイルの位置を指定する時、相対パスと絶対パスを使うことが出来る。

* ファイルを含んでいるフォルダを指定する時、区切り記号はコロン( : )やバックスラッシュ( \ )ではなく、スラッシュ( / )を用いる。どのプラットホーム上でも、Revolution はファイルパスに Unix スタイルの区切り記号を使う。

* ファイルパスが相対パスである場合は、defaultFolder プロパティがきちんとセットされているか、スタック内や他のスタックで変更されていないかをチェックする。

 ファイルの完全なパスを得るには、メッセージボックスからこの文を実行する:
  answer file "Where is the file?"; put it
 この文はファイルを選択するダイアログを表示して、そのファイルの絶対パスをメッセージボックスに表示する。ハンドラ内で使っているファイルパスが本当に正しいかどうか、このファイルパスと比べてみる。


Why do fonts and colors change when I create a standalone application?
なぜスタンドアプリケーションにするとフォントとカラーが変わってしまうのか?
==============

参照:
--------------
Why do icons disappear from a standalone application?, Why do objects look different when created in a standalone?, Why does an image have the wrong colors?, Why does text appear distorted?, Why doesn't my application look like other Mac OS applications?, Why don't animations run in my standalone?, Why don't buttons respect my color settings?, How to change an object's color, How to change the color of text, How to find out the actual color of an object, backgroundColor property, borderColor property, bottomColor property, focusColor property, foregroundColor property, hiliteColor property, shadowColor property, textFont property, textSize property, textStyle property, topColor property

 Revolution の開発環境は、フォントとカラープロパティにデフォルトの値をセットする。スタックのフォントとカラープロパティが empty である時、スタック内のオブジェクトの表示には開発環境のセッティングが使われる。

 スタンドアローンアプリケーションではこれらのデフォルト値は使われない。なぜならこれらのデフォルト値は実行エンジンのものではなく、開発環境が持っていたものである。スタンドアローンアプリケーションでは、開発環境のデフォルトではなく、エンジンのデフォルト値を用いて、スタックのオブジェクトが表示される。この値はプラットホームによって異なることがある。

 スタンドアローンアプリケーションをスタックと同じ外観を保つには、以下の方法がある:

* スタンドアローンを作る前に、スタックの textFont、textStyle、textSize プロパティと、backgroundColor、foregroundColor その他のカラープロパティをセットする。

* Build Distribution ダイアログで、'Copy default font settings' と 'Copy default colors' のチェックボックスにチェックを入れる。これらのチェックボックスは Stacks タブにある。これによって、開発環境のフォントとカラープロパティが、自動的にスタックに設定される。


Why do I get a recursion error?
なぜ再帰エラー( recursion error )が起こるのか?
==============

参照:
--------------
Why am I running out of memory?, Why does importing a HyperCard stack cause an error?, lockMessages property, on control structure

 ハンドラが自分自身をコールすることを、再帰( recursive:リカーシブ )と呼ぶ。再帰は強力なプログラミングテクニックであるが、意図しない無限ループを作ってしまうことがある。 Revolution は再帰コールが無限ループになっていると気付いた時点で、エラーメッセージを表示する。

 例えばこの文を mouseDown ハンドラに置いた場合:
  click at the loc of me
 オブジェクトをクリックすると mouseDown ハンドラが実行される。 mouseDown ハンドラは click コマンドを実行するが、クリックによって別の mouseDown メッセージが発生するので、mouseDown ハンドラのコピーが実行され、更に click コマンドが実行されて、別の mouseDown メッセージが送られる。無限に再帰を繰り返し、もし Revolution が再帰を止めなければ、最初の mouseDown ハンドラは永久に終わらない。

 よく見られるのは、closeCard ハンドラ内で go コマンドを使って、無限再帰に陥ることである。( go コマンドを実行する時に closeCard メッセージが発生するため)

 この種類の無限再帰を避けるために、以下のことを試してみる:

* 無限再帰を引き起こすコマンドを実行する前に、lockMessages プロパティを true にする。例えば、lockMessages を true にすれば go コマンド実行時に openCard と closeCard メッセージが発生しないので、安心して openCard と closeCard ハンドラを使用することが出来る。

* 自動的に送られて来るシステムメッセージを使わずに、必要な時だけ実行するカスタムコマンドを作る。例えば click コマンドを mouseDown ハンドラではなく、カスタムハンドラに入れる。そのカスタムハンドラはクリックしても複製されないので、安心してそのコマンドを使うことが出来る。


Why do icons disappear from a standalone application?
なぜスタンドアローンアプリケーションにアイコンが表示されないのか?
==============

参照:
--------------
Development menu > Object Library, armedIcon property, disabledIcon property, hilitedIcon property, icon property, showIcon property

 Revolution の Image Library には、Standard Icons や MetaCard Compatible というアイコンライブラリが含まれている。スタンドアローンアプリケーションをビルドする時にこのライブラリを含めない限り、スタンドアローンは Revolution のライブラリにアクセスすることは出来ない。Standard Icons や MetaCard Compatible にあるアイコンを使うためには、スタンドアローンアプリケーションを作る時に、アイコンライブラリを含める必要がある。

 アイコンライブラリを含めるには、Distribution Builder ウィンドウで Resources タブをクリックして、'Icon Libraries' チェックボックスにチェックを入れる。それからチェックボックスの下にあるリストから、必要なライブラリを選択する。

 (この作業によって表示出来るようになるのは、Standard Icons や MetaCard Compatible ライブラリにあるアイコンだけである。アイコンライブラリに無いアイコンをスタンドアローンで表示するには、アイコン用に作ったイメージを利用する)


Why do lines of text overlap?
なぜテキストの行が重なってしまうのか?
==============

参照:
--------------
Why does an object or window flicker?, Why does text appear distorted?, Object menu > Text, Text menu > Size, fixedLineHeight property, formattedHeight property, lineHeight property, textSize property

 フィールドの lineHeight プロパティは、テキストの行間を決定している。もしフィールドのテキストが lineHeight よりも大きいと、テキストが重なってしまうことがある。

 この問題を避けるには、以下のどれかを実行する:

* フィールドの fixedLineHeight プロパティを false にする。これによってフィールドのテキストサイズを元に行間が決められるようになり、lineHeight プロパティは無視される。

* フィールドの textSize プロパティを小さくする。(言い換えると、フィールドのテキストサイズを小さくする)

* フィールドの lineHeight プロパティを、テキストを表示出来る大きさにする。


Why do menu commands affect the wrong stack?
なぜメニューが違うスタックに作用してしまうのか?
==============

参照:
--------------
Why can't I display a stack as a normal window?, Why does an unwanted handler run?, Why doesn't Revolution recognize my stack?, cantModify property, defaultStack property, mode property, topStack function

 ほとんどのアプリケーションでは、メニューはアクティブウィンドウに対して作用する。しかし Revolution は編集可能ウィンドウだけでなく、様々なウィンドウタイプを柔軟に使うことが出来るので、カレントスタックがアクティブウィンドウであるとは限らない。

 どのスタックがカレントスタックになるかは、以下のルールによって決まる:

1. 編集可能ウィンドウとして開いているスタックがあれば、最前面のロックされていないスタックがカレントスタックである。( cantModify プロパティが true であるスタックはロックされていないスタックである)(訳注:(A stack is unlocked if its cantModify property is set to true.) これ逆じゃないかと思います)

2. ロックされていないスタックが開いてない場合は、一番手前の、ロックされている普通のウィンドウがカレントスタックである。

3. もし普通のウィンドウが開いていなければ、一番手前のモードレスダイアログボックスがカレントスタックである。

4. もし編集可能なウィンドウもモードレスウィンドウも開いていない場合は、一番手前のパレットがカレントスタックである。

 言い換えるなら、一番手前にある、mode プロパティが一番低いスタックのことを、カレントスタックと呼ぶ。

 カレントスタックを変更するには、メッセージボックスの 'Default Stack' ポップアップメニュー(訳注:スタック名が表示されている部分)を使う。カレントスタックの変更は defaultStack を設定することで行うことも出来る。


Why do objects look different when created in a standalone?
なぜスタンドアローンにするとオブジェクトの外観が変わるのか?
==============

参照:
--------------
Why do fonts and colors change when I create a standalone application?, Why do icons disappear from a standalone application?, create command, create card command, templateAudioclip keyword, templateButton keyword, templateCard keyword, templateEPS keyword, templateField keyword, templateGraphic keyword, templateGroup keyword, templateImage keyword, templatePlayer keyword, templateScrollbar keyword, templateStack keyword, templateVideoclip keyword

 Revolution 開発環境は、新しいオブジェクトのプロパティに、テンプレート(例えばボタンなら templateButton )の設定をデフォルトとしてセットする。これは、オブジェクトを作るときに、テンプレートにあるデフォルトの設定が使われることを意味する。

 これらの設定は実行エンジンではなく開発環境の一部であるので、スタンドアローンアプリケーションでは、このデフォルト設定は使われない。 create コマンドを使ってオブジェクトを作ると、開発環境のデフォルト設定ではなく、実行エンジンの設定が使われる。この設定はプラットホームによって異なる場合がある。

 スタンドアローン上でオブジェクトを作るときに、希望するプロパティが設定されるようにするには、オブジェクトを作る前に、適切な template にプロパティを設定する。

 例えばグラフィックを作る時は、このような文になる:
  set the opaque of the templateGraphic to true
  create graphic "My Graphic"


Why do unwanted objects appear on new cards?
なぜ新しいカードに不要なオブジェクトが現れるのか?
==============

参照:
--------------
Why does an image disappear?, Why does an object change size?, Why doesn't a control appear?, Object menu > Remove Group, create card command, groupNames property, place command, remove command

 create card コマンドや、Object メニューの 'New Card' を使ってカードを作った時に、自動的にあるグループが新しいカードに加えられる。

 不要なグループをカードから取り除くには、( Edit メニューの 'Select Grouped Controls' がチェックされていないことを確認してから)ポインタツールでそのグループを選択して、Object メニューから 'Remove Group' を実行する。 remove group コマンドを使えば、他のカードにある不要なグループを取り除くことも出来る。


Why does a custom cursor fail to appear?
なぜカスタムカーソルが表示できないのか?
==============

参照:
--------------
Why does an image disappear?, Why doesn't a control appear?, colors property, cursor property, ID property

 カスタムカーソル用にイメージを作って cursor プロパティにイメージ ID をセットしたのに、カーソルが表示されない場合は、以下の項目をチェックする:

* そのイメージはスタック上で有効か? Revolution はカーソルに使うイメージを見つけられなかったのかも知れない。ひとつの方法は、ボタンを作り、その icon プロパティにカーソルイメージの ID を入れ、showIcon プロパティを true にしてみることである。もしボタンにイメージが表示されなかったら、そのイメージは有効ではない。イメージを使用可能にするためには、そのイメージを使いたいスタックか、そのスタックの入っているスタックファイルに、イメージを入れなければならない。

* そのカーソルイメージの大きさはプラットホームに適合するか? Mac OS システムでは、カスタムカーソルは 16x16 ピクセルでなければならない。 Unix と Windows システムでは、カスタムカーソルの大きさは 16x16、または 32x32 でなければならない。

* イメージの ID が、同じスタック内の他のオブジェクトと重複しているか、或いは予約された ID ではないか? ID が重複している場合は、壊れたイメージが表示される場合がある。( 1000 以下の ID は、Revolution の組み込みリソースが予約している)

* カーソルイメージは正しい色数(白、黒、透明色)で作られているか? イメージが使っている色数を調べるには、その colors プロパティを調べる。各行はひとつの色を表し、それは3行でなければならない。

 もしイメージの色数が多すぎる場合は、白い四角いカーソルが表示される。他のアプリケーションで作ってスタックに取り込んだイメージは、3色しか使わなくても、多くの色を含んでいる。 Revolution のペイントツールを使えば、色数を必要なものだけの小さなものにすることが出来る。


Why does a handler stop working when moved to another platform?
なぜ他のプラットホームでハンドラがうまく働かないのか?
==============

参照:
--------------
\ keyword, <> operator, <= operator, >= operator, charSet property

 Transcript で使えるキャラクタには、Macintosh 専用のキャラクタも一部含まれている。(これらのキャラクタは HyperCard をインポートした際の互換性のためにある) Windows と Unix システムでは、これらのキャラクタを含んだハンドラは正しく働かない。

 この問題を避けるには、機能しないハンドラの中にこれらのキャラクタが無いかを調べる:

* ャ ( option - L )
代わりに \ を使う。

* ウ ( option - . )
代わりに >= を使う。

* イ ( option - , )
代わりに <= を使う。

* ュ ( option - = )
代わりに <> を使う。


Why does a mouseUp handler fail to work?
なぜ mouseUp がうまく機能しないのか?
==============

参照:
--------------
Why doesn't a control get messages while the mouse is down?, Why doesn't the controller of a player respond to clicks?, Why isn't a handler executed?, How to simulate a mouse click, click command, mouseDoubleUp message, mouseRelease message, mouseUp message

 ユーザーがマウスをクリックすると、マウスボタンを離した時にそのオブジェクトに mouseUp メッセージが送られる。もし mouseUp メッセージが適切に送られて来ない場合は、以下の項目を試してみる。

* mouseUp ハンドラをコールする mouseRelease ハンドラを追加する:
  on mouseRelease
    mouseUp
  end mouseRelease
 ユーザーがオブジェクトの外にマウスポインタを移動してからボタンを離すと、オブジェクトに mouseRelease メッセージが送られる。 mouseRelease メッセージを捉えるようにすれば、ユーザーがオブジェクトの外でマウスボタンを離しても、オブジェクトがユーザーのクリックを見失わない。

* mouseUp ハンドラをコールする mouseDoubleUp ハンドラを追加する。ユーザーが素早く2度クリックすると、2度目のクリックでは mouseUp メッセージではなく mouseDoubleUp メッセージが送られる。 mouseDoubleUp メッセージを捉えるようにすれば、それぞれのクリックで mouseUp メッセージを受け取ることが出来る。

* ブラウズツール以外のツールで mouseUp メッセージを受けたいなら、palette や modeless コマンドを使って、スタックをパレットやモードレスダイアログとして開く。(ブラウズツール以外のツールを使っている時、Revolution の開発環境がマウスメッセージをトラップする。パレットとモーダルダイアログなら、どのツールを選択していても常にブラウズツールが使われる)


Why does a stack open to the wrong size?
なぜ思った大きさでスタックが開かないのか?
==============

参照:
--------------
Why can't I display a stack as a normal window?, Why does a stack open slowly?, How to display another stack in the current window, height property, resizable property, vScroll property, width property, windowBoundingRect property

 希望する大きさでスタックが開かない時は、以下の項目をチェックする:

* openStack や preOpenStack ハンドラで、スタックの rectangle プロパティ(や、height や width などの関連するプロパティ)をセットしていないか?

* 保存したスタックの rectangle が、windowBoundingRect プロパティよりも大きいのではないか? デフォルトでは、Revolution はこのプロパティに、スクリーンのトップにツールバーを置く余裕を与える。また Windows のツールバーのような、プラットホームごとの事情も配慮する。このプロパティの値は書き換えることが出来る。また preOpenStack ハンドラでスタックの rectangle プロパティをセットすれば、windowBoundingRect の影響を回避することも出来る。

* Mac OS と OS X で、スタックの menubar プロパティにグループ名をセットしていないか? menubar プロパティにボタンのグループをセットすると、そのボタンはメニューバーのメニューとして表示される。そのグループの置かれた全てのカードではスタックウィンドウが短くなり、グループが隠れるように上にスクロールされる。( editMenus プロパティを true にすれば、メニューバーにあるボタンを元に戻し、選択や編集が出来るようになる)


Why does a stack window open in the wrong mode?
なぜスタックウィンドウが希望するモードで開かないのか?
==============

参照:
--------------
Why aren't window positions saved in my application?, Why can't I display a stack as an editable window?, Why does a stack open to the wrong size?, Why doesn't Revolution recognize a stack file?, Why don't the menus appear when I open a stack?, About windows, palettes, and dialog boxes, modal command, mode property, modeless command, palette command, style property, topLevel command

 style プロパティでモードを設定してあるスタックを強制的に違うモードで開くには、topLevel、palette、modal、modeless コマンドを使う。

 スタックを開いてからこれらのコマンドを使ってもウィンドウのモードは変化しないので、スタックの style プロパティを使って希望するウィンドウモードを設定しなさい。


Why does a variable lose its value?
なぜ変数の値が失われるのか?
==============

参照:
--------------
Why am I running out of memory?, How to declare a variable, constant command, global command, local command, put command, variableNames function

 宣言をせずに変数を使用すると、Revolution はローカル変数を作る。ローカル変数はカレントハンドラを実行している間だけ存在し、ハンドラを抜ける時に消えて無くなる。そのハンドラを再度実行しても、その変数は元の値を保持していない。

 スクリプト内のハンドラの外でローカル変数を宣言すると、その変数はそのスクリプト内のどのハンドラでも使うことが出来、別のハンドラ内でも、同じハンドラを再度実行した時でも、その値を維持している。しかしスクリプトを変更すると、ローカル変数の値は失われる。

 スクリプトを変更した時にも変数の値を保ちたいなら、global コマンドを使って、変数をグローバル変数として宣言する。グルーバル変数は、アプリケーションを終了するまで存在し、その値を保持し続ける。

 ローカル変数もグローバル変数も、アプリケーションを終了すると消えて無くなる。次回起動したときにもその値を使いたいなら、値をオブジェクトのカスタムプロパティやフィールドの中に入れて、スタックの中に保存しなさい。テキストファイルに保存して、次回そこから読み込む方法もある。


Why does an image disappear?
なぜイメージが表示されないのか?
==============

参照:
--------------
Why doesn't a control appear?, Why does an object or window flicker?, Edit menu > Clear, filename property, hide command, platform function, show command, there is a operator, visible property

 もしスタック内のイメージが消えてしまう場合は、これらをチェックする:

* 他のファイルに保存してある画像を参照して表示している? イメージファイルの名前や位置が変更されていないか確認する。またイメージの filename プロパティが正しいファイルパスになっているかも確認する。

* スタックを他のシステムに移動した? スタックを移動したときに、アイコンやカーソルで使われるイメージを移動するのを忘れてないか。

* イメージが PICT フォーマットではないか? Unix と Windows システム上では、Revolution は PICT イメージを表示することは出来ない。 PICT ファイルからインポートしたイメージを Unix や Windows システムで使いたいなら、それを GIF や JPEG に変換してから再度インポートし直せば、クロスプラットホーム対応にすることが出来る。

* イメージが EPS オブジェクトではないか? EPS は、Mac OS、OS X、Windowsや、Display PostScript を持たない Unix システム上では表示できない。


Why does an image have the wrong colors?
なぜイメージの色が変わってしまうのか?
==============

参照:
--------------
Why do fonts and colors change when I create a standalone application?, Why does an image disappear?, Why does an object or window flicker?, Why is there a border around controls?, Object menu > Colors and Patterns, colorMap property, ink property, lockColormap property, privateColors property, screenColors function, screenDepth function

 ビデオ能力が 8 ビット( 256 カラー)以下のシステム上で、使用可能な 256 色以外の色を使うスタックを開くと、Revolution は各ピクセルを、表示できる最も近い色に変換する。写真のようなデータでは、これによって色が変化したり、縞模様が現れることがある。

 8 ビットカラー以下のシステムでイメージが綺麗に表示されない場合は、以下のいくつかを試してみる:

* グラフィック編集ソフトを使って、全てのイメージが同じカラーセットを使うようにリマップする。イメージを 256 カラー以上にすることは出来ないが、これによって Revolution の自動リマップ機能を使うよりも良い結果を得ることが出来る。

* Unix システムでは、privateColors プロパティを true にする。これによって Revolution は、オペレーションシステムのデフォルトカラーテーブルを使うのではなく、開いているスタックに合わせてカラーテーブルを調整する。


Why does an object change size?
なぜオブジェクトのサイズが変わるのか?
==============

参照:
--------------
Why can't I resize a control?, Why does a stack open to the wrong size?, Why does an object or window flicker?, Tools menu > Geometry Manager, Object menu > Alignment Palette, height property, lockLocation property, rectangle property, width property

 通常、オブジェクトは設定したサイズを維持する。もしオブジェクトのサイズが意図せず変わってしまう時は、以下の項目をチェックする:

* ハンドラでオブジェクトサイズを変更していないか? ハンドラから、オブジェクトの height、width、rectangle プロパティを変更して、サイズを変えることが出来る。

* そのオブジェクトはイメージかプレイヤー? これらのオブジェクトは、そのオブジェクトのあるカードが表示される度に、オブジェクト自身の持つ画像やムービーに合わせて自動的にサイズが変更される。

*そのオブジェクトはグループ? グループはそのグループ内のコントロールに合わせて、自動的にリサイズされる。グループが自動的にリサイズされるのを防ぐには、グループの lockLocation プロパティを true にする。


Why does an object or window flicker?
なぜオブジェクトやウィンドウがチラつくのか?
==============

参照:
--------------
Why can't I resize a control?, Why does an image disappear?, Why does an image have the wrong colors?, Why does my stack open slowly?, How to prevent displaying intermediate changes on a card, alwaysBuffer property, bufferHiddenImages property, layer property, lockColorMap property, lockScreen property, screenNoPixmaps property

 何かのアクション(テキストの選択、カードからカードへの移動、コントロールの移動など)を起こした時に、ウィンドウやウィンドウ内のオブジェクトがチラつく時は、以下のことを試す:

* スタックの alwaysBuffer プロパティを true にする。スタックの alwaysBuffer が false の時は、コントロールは直接画面に描画されており、コントロールを動かしたりカードを移動した時に、画面がチラつくことがある。スタックの alwaysBuffer をtrue にすればこれらのチラつきを防ぐことが出来るが、より多くのメモリを消費する。

* プレイヤーやイメージがチラつく時は、alwaysBuffer プロパティを true にする。プレイヤーやイメージの alwaysBuffer が false だと、これらを画面に描画する時に、全体が描き直される。 alwaysBuffer プロパティを true にすれば、描き直しを防ぐことが出来る。(そしてこれもメモリを多く消費する)

* ハンドラからオブジェクトを移動したり、表示非表示を切り替える時に、lock screen コマンドを使って画面をロックする。画面をロックすれば、オブジェクトの移動や変更で画面がチラつくのを防ぐことが出来る。

* 文字入力しているフィールドの上にイメージや EPS オブジェクトが被っていないか? イメージや EPS オブジェクトがフィールドの上にあると、フィールドへ文字を入力するたびに描き直しが起きる。この問題を避けるには、イメージや EPS オブジェクトのレイヤーをフィールドの下に変更するか、フィールドにかからないように移動する。


Why does an unwanted handler run?
なぜ意図しないハンドラが実行されるのか?
==============

参照:
--------------
Why can't I interrupt a handler?, Why do I get a recursion error?, Why do unwanted objects appear on new cards?, Why does a mouseUp handler fail to work?, exit command, me keyword, target function

 クリックなどのアクションが起きると、それに見合ったメッセージが、ターゲットのオブジェクトに送られる。もしオブジェクトがそのメッセージに対応したハンドラを持たない場合は、そのメッセージはメッセージパス内の次のオブジェクトに渡される。もしそのオブジェクトがメッセージに対応するハンドラを持っていればそのハンドラが実行されるが、そうでなければ更に次のオブジェクトにメッセージが渡される。

 もし意図しないハンドラが実行され予期しない結果が起こる場合は、これらのことを試す:

* オブジェクトのスクリプトに空のハンドラを置いて、メッセージをトラップする。例えばサブスタックに送られた openStack メッセージがメインスタックへ渡されるのを防ぎたいなら、サブスタックのスクリプトにこのようなハンドラを置く:
  on openStack
    exit openStack
  end openStack
* メインスタックが他のスタックからのメッセージを受け取りたくないなら、サブスタックを独立したファイルに移動する。これによってそのスタックはメインスタックになり、他のメインスタックのメッセージパスから取り除かれる。

* メッセージを受け取ったハンドラで target 関数をチェックして、もしターゲット(最初にメッセージを受け取ったオブジェクト)が意図するもので無かったら、exit 文を使ってハンドラを抜ける。


Why does importing a HyperCard stack cause an error?
なぜインポートした HyperCard スタックがエラーになるのか?
==============

参照:
--------------
About Revolution for experienced HyperCard developers, How to import a HyperCard stack, HCAddressing property, HCImportStat property, HCStack property

 Revolution から HyperCard スタックを開くと、そのスタックは自動的に Revolution スタックに変換される。この処理中に Revolution は、スタック内のスクリプトをコンパイルする。

 ほとんどの HyperTalk のコードは Transcript で実行できる。しかしいくつかの古い HyperTalk コードは Revolution と互換性がない。その場合、Revolution はスクリプトのコンパイルを試みた時に、エラーメッセージを表示する。

 インポートした HyperCard スタックでスクリプトエラーが起きるのは、これらが原因であることが多い:

* doMenu コマンドは全ての HyperCard メニュー項目をサポートしていない。存在しないメニュー項目を doMenu コマンドで指定すると、Revolution はスクリプトエラーを起こす。

* 外部命令( XCMD と XFCN )は自動的にインポートされないので、これらを使うスクリプトはエラーになる。

* HyperCard のカラーアーキテクチャーは AddColor 外部命令を利用しているが、Revolution ではこれをサポートしない。 Revolution では foregroundColor や backgroundColor などのプロパティを使って、オブジェクトのカラーを指定する。

 スタックをインポートする時に繰り返しエラーメッセージが現れるのを防ぐには、最初に HyperCard でスタックを開いて、問題を起こすコードをコメントアウトする。それから Revolution でスタックを開き、スタックの変換が済んでから、サポートされていないコマンドを同じ機能の Transcript で置き換える。


Why does my stack open slowly?
なぜスタックのオープンが遅いのか?
==============

参照:
--------------
Why am I running out of memory?, Why can't I display a stack as a normal window?, Why does a stack open to the wrong size?, File menu > Open Stack..., charSet property, openBackground message, openCard message, openStack message, password property, preOpenStack message

 もしスタックのオープンに異常に長い時間がかかる場合は、以下の項目をチェックする:

* スタックに、時間のかかる preOpenStack ハンドラが含まれていないか? このハンドラの実行で時間がかかる場合は、一部を openStack ハンドラ(スタックが表示されてから実行される)に移動するか、毎回実行する必要のないものは、他の方法を使ってスタックを開く時にはそれが済んでいるような構造にしておく。

* スタックファイルが大きくないか? Revolution はスタックを開く時、アプリケーションのメモリパーテーション内に、スタックファイル内の全ての内容を読み込む。スタックファイルが大きすぎる場合は、それをいくつかのスタックファイルに分割すれば、作業に必要な部分を必要な時にだけメモリに読み込むようになる。もしスタックに大きなビデオクリップやオーディオクリップオブジェクト、イメージなどが含まれている場合は、これらを別ファイルにしてコントロールから参照するようにすれば、表示される時にだけメモリに読み込まれるようになる。

* スタックにパスワードプロテクトがかけてないか? Revolution は、パスワードのかかったスタックを開く度に、暗号をデコードする。大きいスタックではこの処理に時間がかかる。

* Mac OS や OS X で保存したスタックを Unix や Windows で、或いはその逆の方法で開いている? スタックを保存する時、その中のテキストは、ISO キャラクタセット( Unix と Windows システム)か Macintosh キャラクタセット( Mac OS と OS X )にエンコードされる。もしそのスタックを違うキャラクタセットを使うシステムで開くと、Revolution はスタック内の全てのテキストを現在のシステムのキャラクタセットに変換する。スタック内のフィールドやスクリプトに大量のテキストがあると、この処理に時間がかかる。


Why does text appear distorted?
なぜ崩れたテキストが表示されるのか?
==============

参照:
--------------
Why do fonts and colors change when I create a standalone application?, Why do lines of text overlap?, Object menu > Text, Text menu > Font, fontNames function, formatForPrinting property, textFont property

 もしスタックに異常に崩れたテキストが表示される場合は、以下の項目をチェックする:

* formatForPrinting プロパティが true になっていないか? このプロパティを true にするのは、プリント中に限らなければならない。これを true にすると表示フォントが変わり、予期しない結果が起こる場合がある。

* 使用しているフォントがシステムにインストールされているか? スタックを作った時に使っていたフォントが削除されていたり、或いはそのフォントがインストールされていないシステムにスタックを移動した場合、Revolution は代わりに他のフォントを使用する。オリジナルと異なる代用フォントが使われた場合、テキストの表示が乱れることがある。


Why does the Geometry Manager move objects to the wrong place?
なぜ Geometry Manager は間違った場所にオブジェクトを移動するのか?
==============

参照:
--------------
Why doesn't a control appear?, Geometry Manager Tutorial, revCacheGeometry command, revUpdateGeometry command

 Geometry Manager を使って、ユーザーがスタックウィンドウをリサイズする時にコントロールの移動やリサイズが行われるよう指定してあるのに、間違ったリサイズや移動が行われる場合は、指定をやり直す必要があるかも知れない。

 Geometry Manager がオブジェクトを移動やリサイズする時、オブジェクトの元の位置やサイズを元にして新しい位置やサイズを決定している。この元の位置は、オブジェクトの scaling や positioning をセットアップした時に Geometry Manager が保存している。

 Geometry Manager の設定が済んでからオブジェクトの移動やリサイズをした場合は、この元の位置を更新する必要がある。これには revCacheGeometry コマンドを用いる。

 オブジェクトのサイズや位置を変更したら、カードを移動したりウィンドウをリサイズする前に、ハンドラかメッセージボックスから以下の文を実行すれば、設定を更新することが出来る:
  revCacheGeometry


Why doesn't a control appear?
なぜコントロールが表示されないのか?
==============

参照:
--------------
Why can't I select a control?, Why does an image disappear?, Why does the Geometry Manager move objects to the wrong place?, Why don't the menus appear when I open a stack?, View menu > Show Invisibles, location property, lockLocation property, rectangle property, there is a operator, visible property

 コントロールがスタックウィンドウに表示されない場合は、以下の項目をチェックする:

* コントロールの存在を調べるには、there is a オペレータを使う。例えばカレントスタックに 'Options' という名前のボタンがあるかを調べるには、以下の文をメッセージボックスに打ち込む:
  put (there is a button "Options")
* もしコントロールが存在するなら、show コマンドを使ってそれを表示してみる。

* それでもコントロールが表示されない場合は、コントロールの location プロパティが、スタックウィンドウのレクト内であるかを調べる。

* そのコントロールがグループに含まれている場合は、スタックウィンドウの表示可能領域であっても、グループのレクトの外である可能性がある。

 lockLocation プロパティが false のグループは、その中にある visible プロパティが true のコントロールが全て見えるように、自動的にリサイズされる。新しく加えたコントロールが見えるように強制的にグループをリサイズするには、グループの lockLocation プロパティを false にする。


Why doesn't a control get messages while the mouse is down?
なぜマウスボタンを押している間、コントロールはメッセージを受け取らないのか?
==============

参照:
--------------
Why does a mouseUp handler fail to work?, About messages and the message path, lockMessages property, mouse function, mouseMove message, send command

 マウスボタンを押している間、mouseMove、mouseEnter、mouseLeave のようなメッセージは送られて来ない。これは、これらのメッセージを使って、アプリケーションがカーソルやツールバーなどを変更することが出来ないことを意味する。

 mouseDown ハンドラ内で、マウスボタンを押している間もマウス移動に反応するには、二通りの方法がある:

* repeat 制御構造を使ってマウス座標を調べ続け、mouseLoc が変化した時に適切な処理を実行する。このアプローチはシンプルで直接的だが、マウスの状態を調べる時に処理速度に著しい影響が出る。

* repeat 制御構造を使って、他のハンドラを実行するための周期的なメッセージを送る。
  on mouseDown
    repeat until the mouse is up
      send "testMouse" to me in 6 ticks
      wait 6 ticks
    end repeat
  end mouseDown
 repeat 制御構造はマウスボタンを押している間実行され続け、1/10秒ごとに testMouse メッセージが送られる。 testMouse ハンドラの中でマウス座標を調べ、適切な処理を行う。

 この方法は、必要な時しかマウスの座標を調べないので、常にマウスを調べ続ける最初の方法よりも望ましい。マウスの座標を調べるのは実行速度に影響を与える。


Why doesn't a custom property appear in the Properties palette?
なぜカスタムプロパティがプロパティパレットに表示されないのか?
==============

参照:
--------------
About properties, custom properties, and property sets, Object menu > Object Properties, Object menu > Card Properties, Object menu > Stack Properties, customKeys property, customPropertySets property

 Revolution は、各オブジェクトの外観や動作に関するカスタムプロパティを持っている。これらのプロパティやプロパティセットの名前の先頭には、'rev' が付いている。この文字で始まる名前は Revolution が予約しており、'rev' で始まる名前のプロパティは、開発環境の一部である。

 Revolution が予約しているプロパティを含めて、全てのカスタムプロパティを表示するには、プロパティパレットの Custom タブで、下にある 'Show Revolution UI Custom Properties' チェックボックスをチェックする。


Why doesn't a stack maximize or zoom to the full screen size?
なぜスタックを最大化したりフルスクリーンサイズに出来ないのか?
==============

参照:
--------------
Why does a stack open to the wrong size?, height property, resizable property, width property, windowBoundingRect property

 スタックウィンドウでズーム( Mac OS と OS X システム)や最大化( Unix と Windows システム)を使った時の大きさは、windowBoundingRect プロパティに制限されている。

 Revolution はデフォルトで、このプロパティに、ツールバーやディスプレイ上部のメニューバーの余裕を残し、プラットホームに適した大きさを設定する。このプロパティに他の値をセットしたり、スタックを手動でリサイズ(或いは rectangle などの関連プロパティを変更)して、希望する大きさにすることが出来る。


Why doesn't an EPS object appear?
なぜ EPS オブジェクトが表示されないのか?
==============

参照:
--------------


 EPS オブジェクトは、Display PostScript をサポートする Unix システムでのみ、サポートされている。

 Display PostScript (ディスプレイポストスクリプト)をサポートしないシステムで EPS オブジェクトを作ったり、そのようなシステム上で EPS オブジェクトを含むスタックを開くと、PostScript は表示されず、EPS オブジェクトは空白の四角としてカードに現れる。


Why doesn't my application look like other Mac OS applications?
なぜ普通の Mac OS アプリケーションと違う外観になるのか?
==============

参照:
--------------
Why do fonts and colors change when I create a standalone application?, Supported Platforms Reference, lookAndFeel property, proportionalThumbs property

 Mac OS と OS X では、アプリケーションはシステムルーチンを使ってウィンドウと内容を描画する。これらのルーチンはユーザーのシステム設定を反映する。

 lookAndFeel が 'Macintosh'にセットされていると、Revolution は標準ルーチンを使わずに、Revolution 自身のルーチンを使ってコントロールを描画する。このルーチンは Mac OS プラットホームのデフォルトの外観を真似るため、ボタン、スクロールバー、ポップアップメニューなどのユーザーインターフェース部品の外観が、コントロールパネルの設定とは異なったものになる場合がある。

 アプリケーションのフォントやカラーなどの外観に、ユーザーの設定を反映させたい場合は、lookAndFeel を 'Appearance Manager' に設定する。


Why doesn't Revolution recognize a stack file?
なぜ Revolution でスタックファイルを開けないのか?
==============

参照:
--------------
Why can't I display a stack as a normal window?, Why can't I save a stack?, Why can't Revolution find a file I specified?, Why is there already a stack with the same name?, File menu > Open Stack..., File menu > Open Recent Stack, answer file command, ask file command, save command, stackFileType property

 ドキュメントとアプリケーションを関連づける方法がシステムによって異なるため、違うシステムに移動したスタックファイルを Revolution で開けない場合がある。

 この問題を回避するには、以下の項目を試す:

* Mac OS システムから OS X、Unix、Windows システムにスタックを移動する場合は、スタックファイル名の最後に '.rev' を付ける。例えば 'My Stack' というファイルは 'MyStack.rev' に変える。

* Unix や Windows システムから Mac OS や OS X システムにスタックを移動する場合は、ResEdit のようなユーティリティを使って、ファイルタイプを 'RSTK' に、クリエータサインを 'Revo' に設定する。

* Mac OS でしばしばダウンロードしたスタックを使うなら、File Exchange コントロールパネルを使って、拡張子 'rev' を Revolution アプリケーションにマッピングする。 File Exchange はダウンロードしたファイルのクリエータとファイルタイプを自動的に Revolution に変更する。

* これらの方法がうまく行かない時や、もっと簡単にスタックを開きたい場合は、この文をメッセージボックスに入力する:
  answer file "Choose a stack:"; go to stack it
 スタックが開いたら File メニューから 'Save As' を選択して、スタックのコピーを作る。このコピーは正しい拡張子と、クリエータと、ファイルタイプを持っている。


Why doesn't the ask or answer dialog appear in my standalone?
なぜスタンドアローンアプリケーションで ask や answer ダイアログが表示されないのか?
==============

参照:
--------------
Why do fonts and colors change when I create a standalone application?, Why does an image disappear?, Why does a custom cursor fail to appear?, Why don't animations run in my standalone?, answer command, ask command

 Revolution の開発環境には、ask コマンドや answer コマンドなどを使って、ダイアログを表示する機能が含まれている。しかしスタンドアローンアプリケーションを作る時、この機能は自動的には組み込まれない。スタンドアローンアプリケーションとしてビルドされたアプリケーションは、Revolution の内部リソースにアクセスすることは出来ない。

 スタンドアローンアプリケーションを作る時、Build Distribution ボタンをクリックする前に、Build Distribution ダイアログボックス内の適切なチェックボックスにチェックを付けておけば、ダイアログボックス(やその他の機能)のためのリソースを含めることが出来る。これらのチェックボックスは Build Distribution ダイアログボックスの Resources タブで見つけることが出来る。


Why doesn't the controller of a player respond to clicks?
なぜプレイヤーのコントローラがクリックに反応しないのか?
==============

参照:
--------------
Why can't I select a control?, Why does an object or window flicker?, Why don't movies play?, alwaysBuffer property, currentTime property, playLoudness property, showController property, start command, stop command

 プレイヤーの alwaysBuffer プロパティが true にセットされていると、プレイヤーのコントローラバーはクリックに反応しない。

 このトラブルを解決するには、プレイヤーの alwaysBuffer プロパティを false にするか、コントローラーバーを hide して、他のボタンのスクリプトからプレイヤーの動作を制御する。


Why doesn't the Tab key move to the next field?
なぜ Tab キーで次のフィールドに移動できないのか?
==============

参照:
--------------
Why can't I select, copy, or paste text?, Why is there a border around controls?, How to change the tab order of controls on a card, Why was the selected text deselected?, lockText property, lookAndFeel property, tabGroupBehavior property, tabStops property, traversalOn property

 Tab キーを押しても挿入ポインタが次のフィールドに移動しない場合は、以下の項目のいくつかを試す:

* Tab キーを押すとフィールド内で挿入ポインタが移動する場合は、そのフィールドの tabStops プロパティを empty にする。

* Tab キーを押してもフィールドをクリックしても挿入ポインタがそのフィールドに移動しない場合は、フィールドの lockText プロパティを false にして、traversalOn を true にする。

* Tab キーを押しても挿入ポインタが移動しないがフィールドをクリックすれば移動する場合、カード上の他のオブジェクトの traversalOn プロパティを false にする。

 lookAndFeel プロパティが 'Motif' か 'Windows 95' ( Unix と Windows システム)になっている場合は、Tab キーを押すと traversalOn が true である次のコントロール(フィールドではないかも知れない)にフォーカスが移動する。

* グループに内包されたフィールドでは、Tab キーはグループ内の他のフィールドをスキップする。この場合はグループの tabGroupBehavior プロパティを false にする。

* Tab キーで他のフィールドには移動できるが、それが希望するフィールドでない場合は、フィールドの layer プロパティを変更して、最初のフィールドが最下位の layer に、他のフィールドがそれより上に来るようにする。タブキーによる移動の順番は、レイヤーの順番と同じである。


Why don't animations run in my standalone?
なぜスタンドアローンではアニメーションが動かないのか?
==============

参照:
--------------
Why do fonts and colors change when I create a standalone application?, Animation Manager Tutorial, revPlayAnimation command, revStopAnimation command

 Revolution は Animation Manager のアニメーション機能を、カスタムコマンドライブラリをとして持っている。スタンドアローンをビルドする時に適切なライブラリを含めない限り、ビルドしたスタンドアローンアプリケーションは、Revolution のライブラリにアクセスすることは出来ない。 revPlayAnimation、revStopAnimation、revGoToFramePaused コマンドを使うスタンドアローンアプリケーションを作るには、Animation library を含める必要がある。

 Revolution のカスタムライブラリを含めるには、Distribution Builder ウィンドウで Resources タブをクリックして、'Animation Libraries' チェックボックスをチェックする。

 (これが必要なのは Animation Manager を使ってアニメーションを作った時だけである。プレイヤーやビデオクリップを使った QuickTime ムービーなど、他の方法でアニメーションを表示させている場合は、Animation library を含める必要はない)


Why don't buttons respect my color settings?
なぜボタンにカラー設定が反映されないのか?
==============

参照:
--------------
Why do fonts and colors change when I create a standalone application?, How to change an object's color, View menu > Look and Feel, colors property, lookAndFeel property, style property

 Mac OS と OS X システムで lookAndFeel プロパティが 'Appearance Manager' にセットされている場合、標準ボタンは Revolution が描くのではなく、オペレーティングシステムの Appearance Manager (アピアランスマネージャ)が使われる。つまり lookAndFeel が 'Appearance Manager' の時は、Revolution のカラープロパティやパターンプロパティは使われず、アピアランスマネージャのルーチンがボタンの外観を決めている:

* Standard ボタン、shadow ボタン、option menu:カラープロパティのうち foregroundColor だけがボタンの外観に影響を与える。

* チェックボックスとラジオボタン: カラープロパティは、チェックボックスの箱部分とラジオボタンの円部分には影響を与えないが、他の部分には影響を与える。

* その他のスタイルのボタン: これらはオペレーティングシステムが描いているボタンではないので、lookAndFeel の設定に関わらず、カラープロパティは普通に機能する。

If you want a standard or shadow button, or an option menu, to use the colors you specify, try one or both of the following:
 もし standard ボタン、shadow ボタン、option menu にカラー設定を反映させたいなら、以下のいくつかを試す:

1. Mac OS と OS X システムでは、lookAndFeel を 'Macintosh' に変える。これによって全てのカラー設定が有効になるが、全てのコントロールは Macintosh プラットホームの外観になる。

2. ボタンスタイルを standard ではなく rectangle か roundRect にする。

 このどちらか、或いは両方を実行することで、オペレーティングシステムのルーチンではなく、Revolution のルーチンでボタンが描くようになる。これによって、カラー設定が反映される。


Why don't movies play?
なぜムービーを再生できないのか?
==============

参照:
--------------
Why doesn't the controller of a player respond to clicks?, platform function, play command, videoClipPlayer property

 プレイヤーにムービーが表示されない場合は、ムービーファイルの名前や位置が変わっていないかチェックする。またプレイヤーの filename プロパティが正しいファイルパスになっているかも調べる。

 プレイヤーの alwaysBuffer プロパティが true になっている場合は、プレイヤーのコントロールバーはクリックに反応しない。このムービーを再生するには、start、stop、play コマンドを使用する。

 Windows システムでは、グラフィックカードやドライバーがコンフリクトを起こして、QuickTime がムービーの再生に失敗したり、正しく表示されないことがある。このような場合は QuickTime コントロールパネルを使って、Video Settings セクションの 'Safe Mode (GDI Only)' をチェックする。またムービーが Windows の QuickTime Player (訳注:プレイヤーアプリケーションのこと)できちんと再生出来るか確認する。

 Unix システムでは、Revolution はムービー再生に 'xanim' ユーティリティを使う。もし Unix システムでムービーを正しく再生出来ない場合は、以下の項目をチェックする:

* 最新の xanim がインストールされているか?

* 複数の xanim がシステムにインストールされている場合、最新バージョンへパスが通っているか? Revolution がムービー再生にどの xanim を使うのかを調べるには、Unix シェルから 'which xanim' コマンドを実行する。

* xanim のエラーメッセージは得られるか? ( Revolution からムービーを再生するのではなく)シェルから xanim を起動した時に、エラーメッセージが表示されるかも知れない。シェルから xanim を起動すれば、ムーボー再生の問題を解決出来るかも知れない。


Why don't the menus appear when I open a stack?
なぜスタックを開いた時にメニューが表示されないのか?
==============

参照:
--------------
Why are some menu items disabled?, Why do menu commands affect the wrong stack?, About menus and the menu bar, How to show or hide the menu bar, Development menu > Suspend Revolution UI, environment function, defaultMenubar property, menubar property

 スタックをダブルクリックして Revolution を起動した場合、スタックは Revolution の開発環境を読み込まない。 Revolution の開発環境には、スタックを開発するための標準メニュー、ツールバー、パレットが含まれている。

 Revolution の開発環境を読み込ませるためには、アプリケーションのアイコンをダブルクリックする。 Revolution が立ち上がっていれば、(ファイルのダブルクリック、File メニューの 'Open Stack' 項目などの)どの方法を使ってスタックを開いても、そのスタックを Revolution で編集することが出来る。


Why don't the script editor menus appear?
なぜスクリプトエディタのメニューが表示されないのか?
==============

参照:
--------------
Why are some menu items disabled?

 Mac OS と OS X システムでは、スクリプトエディタが最前面にある場合、メニューバーがスクリプト編集メニューに切り替わる。アプリケーションを切り替えると、スクリプトエディタ(や他のパレット)は非表示状態になり、メニューバーは Revolution の標準メニューに切り替わる。

 他のアプリケーションから Revolution に戻ってきた時に、メニューバーをスクリプトエディタのメニューに切り替えるには、スクリプトエディタパレットのどこかをクリックする。


Why don't URLs work in a standalone?
なぜスタンドアローンでは URL キーワードが機能しないのか?
==============

参照:
--------------
Why can't Revolution find a file I specified?, ftp keyword, http keyword, URL keyword

 Revolution は、ftp と http URL アクセスのためのライブラリを持っている。ビルドしたスタンドアローンアプリケーションは、スタンドアローンビルド時に適切なライブラリを含めない限り、Revolution のライブラリにアクセスすることは出来ない。 http や ftp URL タイプを使うスタンドアローンアプリケーションを作るには、Internet library を含める必要がある。

 Revolution のカスタムライブラリを含めるには、Distribution Builder ウィンドウで Resources タブをクリックして、'Internet Libraries' チェックボックスをチェックする。


Why is a custom property garbled in a protected stack?
なぜ保護されたスタックでカスタムプロパティが壊れるのか?
==============

参照:
--------------
About Custom Properties, password property

 スタックの password プロパティをセットすると、カスタムプロパティ内のデータも含めて、スタック内の全てのテキストが暗号化される。サウンドファイルのデータのようなバイナリデータがカスタムプロパティに入っていると、そのスタックにパスワードプロテクトをかけた時に、バイナリデータは壊されてしまう。

 スタックにパスワードプロテクトをかける時は、バイナリデータを別のスタックに保存して、バイナリデータを保護する。スクリプトを含むスタックだけにパスワードプロテクトをかけ、他の(バイナリデータを含む)スタックにはプロテクトをかけずにおくことが出来る。

 この注意はテキストデータには適用されない。バイナリデータにだけ適用される。


Why is Revolution taking more memory than its allocation?
なぜ Revolution は割り当てられた以上のメモリを消費するのか?
==============

参照:
--------------
Why am I running out of memory?, Memory and Limits Reference, alwaysBuffer property, hasMemory function, heapSpace function

 Mac OS は各アプリケーションに、固定されたメモリーを割り当てる。アプリケーションがそれ以上のメモリを必要とする時は、テンポラリメモリを取得するシステムコールを使って、アプリケーションに割り当てられた以上のメモリを使うことが出来る。このテンポラリメモリがアプリケーションにどのくらい割り当てられているかは、ファインダーの 'About This Computer' (訳注:日本語システムでは「このコンピュータについて」)ウィンドウや、その他のユーティリティで見ることが出来る。

 Mac OS システムでは、Revolution は必要なとき(イメージの表示やムービー再生などで多くのメモリを必要とする時や、大きなスタックを開く時)にテンポラリメモリを使う。

 何らかの理由で Revolution がテンポラリメモリを使うことを制限したいなら、ResEdit (やその他のリソースエディタ)を使って、Revolution の TMEM 128 リソースを編集する。このリソースの内容を 0101 から 0001 に変えると、テンポラリメモリは使われなくなる。( Revolution には、一度に開くスタックの総容量プラス 6M のメモリ割り当てが必要になる)


Why is the card number in the window name?
なぜウィンドウ名にカード番号が表示されるのか?
==============

参照:
--------------
Why is there an asterisk in the window name?, View menu > Go Next, View menu > Go Prev, cantModify property, decorations property, label property, name property, number property

 変更可能なスタック(普通に見える編集可能ウィンドウであり、cantModify プロパティが false にセットされている)では、Revolution は編集に便利なように、ウィンドウのタイトルバーにあるスタック名に、括弧付きのカード番号を表示する。スタックがカードをひとつしか持たない場合は、カード番号は表示されない。

 カード番号を表示させないためには、スタックの label プロパティをセットする。 label プロパティが empty 以外に設定されていると、Revolution は(スタックの name プロパティの値ではなく) label の値を、カード番号なしでウィンドウのタイトルバーに表示する。


Why is the selected text deselected?
なぜテキストの選択が解除されてしまうのか?
==============

参照:
--------------
Why can't I select, copy, or paste text?, Why can't I leave all lines of a list field unselected?, Edit menu > Select All, Edit menu > Deselect All, autoHilite property, lookAndFeel property, platform function, select command, traversalOn property

 Revolution は、ある種の状況下でカレントテキストの選択状態を自動的に解除する。テキスト解除を引き起こすアクションによって実行されるハンドラが、カレントテキストを扱おうとする場合に、問題が起きる可能性がある。これらのケースでは、ハンドラが必要としている選択テキストは、常に empty である。

 フィールドのテキストは以下のような状況で選択解除される:

* ユーザーがフィールド内の他の場所をクリックしたか、他の部分を選択した。

* lookAndFeel プロパティが 'Motif' か 'Windows 95' ( Unix と Windows システム)の時に、ユーザーが traversalOn プロパティが true であるボタンをクリックした。( lookAndFeel が 'Macintosh' や 'Appearance Manager' の時にはこの現象は起きない。これは Mac OS と OS X のユーザーインターフェースでは、ボタンはフォーカスを得ることがないためである)

 この問題を解決するには、ボタンの traversalOn プロパティを false にする。これによって Tab キーでボタンをアクティブにすることは出来なくなるが、そのボタンをクリックした時にテキストの選択が解除されることはない。

* ユーザーが、autoHilite プロパティが true にセットされているリストフィールドをクリックした。

 この問題を解決するには、リストフィールドの autoHilite プロパティを false にする。このリストフィールドは、クリックしても自動的にハイライトしなくなる。クリック行をハイライトさせるためには、このハンドラをリストフィールドのスクリプトに入れる必要がある:
  on mouseDown
    set the hilitedLines of me \
      to (word 2 of the clickLine)
  end mouseDown
* implicit focus がセットアップされている Unix システムで、マウスポインタがスタックウィンドウの外に出た。 implicit focus は Revolution の操作に支障をきたすので、Revolution を使うときやアプリケーションを作る時は、explicit focus を使用する。


Why is there a border around controls?
なぜコントロールの周りに境界線があるのか?
==============

参照:
--------------
Why do unwanted objects appear on new cards?, Why doesn't the Tab key move to the next field?, defaultButton property, focus command, layer property, lookAndFeel property, platform function, showFocusBorder property, traversalOn property

 コントロールの showFocusBorder プロパティと、lookAndFeel の設定によっては、どのコントロールがフォーカスされているかを示すために、アクティブなコントロールに特別な境界線が加えられることがある。

* lookAndFeel プロパティが 'Motif' ( Unix システム)にセットされている場合は、showFocusBorder プロパティが true であるアクティブなコントロールに、濃い境界線が描かれる。

* lookAndFeel が 'Windows 95' ( Windows システム)にセットされている場合は、アクティブなコントロールに、破線の境界線が描かれる。

* lookAndFeel が 'Macintosh' や 'Appearance Manager' ( Mac OS システム)にセットされている場合は、showFocusBorder プロパティが true であるアクティブなフィールドとイメージに、境界線が描かれる。

 ユーザーがコントロールをクリックしたり、Tab キーによってフォーカスが移ると、コントロールがアクティブになる。カードが最初に表示される時、一番下にある traversalOn プロパティが true のコントロールがアクティブなコントロールになる。(一番下のコントロールとは、layer プロパティの数字が一番小さいコントロールである)

 コントロールをアクティブにするには、traversalOn プロパティを true に設定しておく必要がある。 traversalOn が false のコントロールは、アクティブになることはない。

 ボタンの defaultButton が true の場合、そのボタンの周りには太い境界線が描かれる。この境界線はユーザーが Return や Enter を押したときに自動的にクリックされることを示すもので、ダイアログボックスのデフォルトボタンとして使われることが多い。


Why is there a copy of my stack file with a tilde?
なぜスタックのコピーにティルド(波記号)が付いているのか?
==============

参照:
--------------
Why can't I find a stack I just saved?, Why can't I save a stack?, Why is there already a stack with the same name?, File menu > Save, name property, save command

 既存のスタックファイルに変更を保存する時、Revolution はまずバックアップコピー(元のファイル名の後ろに ~ を付けたもの)を作って、ファイルの保存が済んでから、そのバックアップコピーを削除する。これは保存作業に失敗しても、データを失わないようにするためである。

 もし名前の最後に ~ の付いたスタックファイルを見つけたら、それは保存作業が失敗していることを意味する。この場合は、オリジナルのスタックファイル(これは保存作業中に壊されている可能性がある)を削除(または移動)して、~ の付いたファイルから ~ 文字を取り除く。

 ~ ファイルはバックアップコピーであるので、ここには最後に保存した時の内容が全て残されている。


Why is there already a stack with the same name?
なぜ同じ名前のスタックが存在するのか?
==============

参照:
--------------
Why can't I find a stack I just saved?, Why is there a copy of my stack file with a tilde?, destroyStack property, mainStack property, name property

 Revolution は各メインスタックの name プロパティを監視しているので、同じ名前のメインスタックを2つ同時に開くことは出来ない。

 もし既にメモリ上にあるメインスタックと同じ名前のメインスタックを開こうとすると、Revolution はダイアログを表示して、古いものをメモリから削除して新しいものを開くかどうかを尋ねる。どのスタックが開いているのか不明な場合は、以下の項目をチェックする:

* スタックウィンドウは閉じているが、メモリ上には残っている?(スタックの destroyStack プロパティが false にセットされていると、スタックウィンドウを閉じても、そのスタックはメモリ上に残っている)

* 開いてないスタックのプロパティをハンドラから読んでいる?(スタックのプロパティを読む時、Revolution はスタックウィンドウを開かずにそのスタックをメモリに読み込む)

 メモリ上に残っている、ウィンドウが閉じているスタックを本当に閉じるには、Application Overview でスタックファイルを探す。スタックを選択して Purge をクリックすれば、メモリ上から取り除くことが出来る。

* 既に開いているスタックを、違うファイルパスで開こうとしていないか? 既に開いているスタックを異なるファイルパスで扱うと、名前の重複をチェックする時に、Revolution はそれを異なるスタックと判断する。

* 既に開いているファイルを、移動又はリネームしてから開こうとしていないか? Revolution はスタックファイルの名前と位置を調べて、スタックが既に開かれているかどうかをチェックしている。


Why is there an asterisk in the window name?
なぜウィンドウ名にアスタリスクが付くのか?
==============

参照:
--------------
Why is the card number in the window name?, How to change a window's title, cantModify property, label property, name property

 スタックが変更可能(標準の編集可能ウィンドウとして表示され、cantModify プロパティが false に設定されている)である時、Revolution は、ウィンドウのタイトルバーに表示するスタック名の後ろに、アスタリスク( * )を付け加える。このアスタリスクは、スタックが編集可能であることを示すものである。

 Revolution がアスタリスクを表示しないようにするには、スタックの label プロパティを設定する。 label プロパティを empty 以外に設定すると、Revolution は(スタックの name プロパティの値ではなく)アスタリスクの付いていない label の値を、ウィンドウのタイトルバーに表示する。


Why isn't a group listed?
なぜグループがリストアップされないのか?
==============

参照:
--------------
Why do unwanted objects appear on new cards?, Why doesn't a control appear?, About groups and backgrounds, Object menu > Edit Group, Object menu > Place Group, groupIDs property, groupNames property, there is a operator

 グループにボタンやフィールドを含めることが出来るように、グループにグループを含めることも出来る。あるグループが他のグループの一部である時、最初のグループは Object メニューの 'Place Group' サブメニューや、the groupNames of this stack の返値には含まれない。(訳注: "the groupNames of this stack" はエラーになります。実際には "the groupNames of this card" か "put the backgroundNames of this stack" を使います)

 スタック内にグループ(それが他のグループの一部であるかに関わらず)が存在するかを調べるには、there is a オペレータを使う。例えば 'Foo' という名前のグループがスタックに存在するかを調べるには、以下の文をメッセージボックスに打ち込む:
  there is a group "Foo"
 もし true が得られればグループは存在し、false だったらグループは存在しない。


Why isn't a handler executed?
なぜハンドラが実行されないのか?
==============

参照:
--------------
Why doesn't a control get messages while the mouse is down?, Why does a mouseUp handler fail to work?, script property, set command

 ハンドラが実行されない場合、ハンドラのメッセージがオブジェクトに送られていないか、ハンドラのスクリプトがコンパイルされていない可能性がある。もしハンドラが実行されない場合は、以下の項目をチェックする:

* オブジェクトはそのメッセージを受け取っているか?
 メッセージを受け取っているかテストするには、以下のような文を一時的にハンドラの一行目に置いてみる:
put "Got message!" -- デバッグコード
次にメッセージを送るようなアクションを起こしてみる。もしメッセージボックスに 'Got message' が表示されたら、ハンドラは実行されている。これで問題の範囲はハンドラのコードに絞られる。

* 使用不可になっているコントロールでメッセージを受け取ろうとしていないか?
 enabled プロパティが false であるコントロールには、mouseDown、mouseUp、mouseEnter などのマウス関連メッセージは送られない。これらのハンドラを実行するには、コントロールを enable にするか、他のハンドラからメッセージを送る。

* lockMessages プロパティが true になっていないか?
 lockMessages は、カード移動に伴うメッセージ( openCard や closeStack など)が送られることを妨げる。そのため lockMessages が true であると、これらのメッセージで起動するハンドラは実行されない。

* ブラウズツール以外のツールを使っていないか?
 ブラウズツール以外のツールを使っている時は、ハンドラの実行によってオブジェクトの編集が妨げられないように、Revolution 開発環境は多くの組み込みメッセージ( mouseEnter や mouseLeave など)の送信を防止する。

* 他のオブジェクトでメッセージがトラップされていないか?
 もしメッセージパス上位の他のオブジェクトに同じ名前のハンドラがあると、そのハンドラは次の階層にメッセージが送られることを妨害する。例えばスタックが mouseDown ハンドラを持っている時、そのスタックにあるカードに mouseDown ハンドラがあると、スタックが mouseDown メッセージを受け取る前に、カードがメッセージをトラップしてしまう。( pass 制御構造を使って、メッセージを次の階層にあるオブジェクトに渡すことも出来る)

* なぜスクリプトがコンパイル出来ないのか?
 スクリプトエディタでスクリプトを Apply すると、Revolution は自動的にスクリプトをコンパイルして、それを実行可能な形にする。( HyperCard スタックをインポートしたり、set コマンドで変更したスクリプトは、すでにコンパイルされている) コンパイルエラーが起きるとエラーウィンドウが現れ、スクリプトはコンパイルされない。ハンドラを実行するには、まずエラーを修正して、スクリプトのコンパイルを成功させる必要がある。


邦訳/文責:UDI
2002.02.17
2002.02.19

inserted by FC2 system