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

Help -> Revolution Documantation -> Development Guide -> Objects & messages -> About... groups and backgrounds


About groups and backgrounds
グループとバックグラウンド
==============

参照:
--------------
About messages and the message path, How to display objects on more than one card, Why isn't a group listed?, Object menu > Group Selected, Object menu > Remove Group, Object menu > Place Group, View menu > Application Overview, backgroundBehavior property, group command, groupIDs property, groupNames property, place command, remove command, selectGroupedControls property


 グループは Revolution の最も多才なオブジェクトであり、ラジオボタン群、メニューバー、オブジェクトセットのカード間共有など、多くの便利な機能を提供する。

 このトピックでは、グループの作り方と使い方、スクリプトから参照する方法、そして共有しているグループをカードに加えたり取り除いたりする方法を説明する。

 このトピックを充分理解するためには、コントロールの作り方と、メッセージパスの働きを修得しておく必要がある。もし 'Getting Started' チュートリアルが済んでいるなら、このトピックを理解するための情報は得られている。


Contents:
What Is a Group?
Groups and Backgrounds
Nested Groups
Selecting and Editing Groups
Adding and Deleting Groups
Groups and the Message Path


What Is a Group?
グループとは?
 グループとは、個々のオブジェクトをまとめたオブジェクトである。グループオブジェクトを作るには、グループに入れたいコントロールを選択して、group コマンドを使うか、Object メニューの 'Group Selected' を選択する。

 あなたが作ったグループはそれ自体がオブジェクトである。選択、コピー、移動、そしてリサイズなどが可能で、グループ内の全てのオブジェクトはその操作に従う。グループ内のオブジェクトはそれぞれ独立しているが、その所有者はカードではなくグループである。グループにオブジェクトを追加することも出来るし、グループからオブジェクトを削除することも出来る。

 グループは自分自身のプロパティとスクリプトを持っている。他のコントロールと同じように、好きな大きさにリサイズ出来、show/hide を切り替えたり、スタックウィンドウの中を移動させることが出来る。また他のコントロールと同じように、カード上の任意の位置のレイヤーに移動することが出来る。

 グループは他のコントロールと異なり、複数のカード上に配置することが出来る。グループをカード上に置くには、place コマンドか、Object メニューの 'Place Group' を使う。複数のカードで共有されているグループは各カード上で同じ位置に表示される。あるカード上で共有されているグループを変更すると、その変更は全てのカードに反映される。


Groups and Backgrounds
グループとバックグラウンド
 'Group' と 'Background' はどちらもグループを指す用語である。これらの用語はどちらも同じように使うことが出来るが、例外もある。

 一般的には、'Group' はカード上のグループを指し、'Background' はスタック上の全グループを指す。 the number of groups という式はカレントカード上にあるグループの数を表す。 the number of backgrounds は、カレントカード上に無いものも含めた、カレントスタック上の全てのグループの数を表す。

 グループを番号で参照する場合、'Group' という単語を使うと、グループのカード上のレイヤー番号と解釈される。 'Background' という単語を使った場合は、スタック上のグループの作成番号と解釈される。

 例えば、the name of group 1 という式はカレントカードの一番下のレイヤーにあるグループの名前を表すが、the name of background 1 という式は、そのグループがどのカードに置かれているかに関わりなく、一番最初に作られたグループの名前を表す。

 しかしオブジェクトを参照する時に 'Background' という単語を使った場合は、それは 'Group' と全く同義語である。

 最後にもうひとつ。 'Background' は、あるグループを共有するカード群を参照する時にも使われる。これは 'Navigation' という名前のグループが置かれている3番目のカードに移動するスクリプトである:

  go card 3 of background "Navigation"

Nested Groups
ネストしたグループ
 Revolution はグループのネスト(あるグループが他のグループを含める)を認める。グループはそれ自体がコントロールなので、他のグループに含めることが可能である。

 ネストしたグループは普通のグループと同じように作ることが出来る:グループ化したいコントロール(やグループ)を選択して、Object メニューの 'Group Selected' を選択する。これでそのグループは新しいグループのメンバーになる。


Selecting and Editing Groups
グループの選択と編集
 グループ化されたコントロールをクリックした時に、コントロールを選択するか、そのコントロールを含むグループを選択するかを決めることが出来る。どちらの方法で選択するかは selectGroupedControls プロパティによって決定される。もしこのプロパティが true なら、グループ内のコントロールをクリックした時に、そのコントロールだけが選択される。もしこれが false なら、コントロールをクリックした時に、そのコントロールを含むグループが選択される。

 selectGroupedControls プロパティは Edit メニューの 'Select Grouped Controls' から変更することが出来る。またコントロールをクリックする時に、Command キー( MacOS、OS X )や Control キー( Unix と Windows )を併用することで、設定とは逆の動作をさせることも出来る。

 ティップス: グループの showBorder プロパティを true にすると、グループの輪郭が表示される。しかし輪郭部分をクリックしてもグループは選択されない。グループを選択するには、グループ内のコントロールのどれかをクリックしなさい。

 グループのプロパティを変更するには、まずグループを選択して、Object メニューの 'Object Properties' を実行する。

 グループ内のコントロールの配置を変更するには、start editing コマンドを使うか、Object メニューの 'Edit Group' を選択する。こうすれば他のコントロールが表示されなくなるので、グループの編集が便利になる。グループ編集モードでは、selectGroupedControls プロパティの設定の如何に関わらず、グループ内の個々のコントロールを選択することが出来る。このモードで作られた新しいコントロールは、編集中のグループに追加される。グループの編集を終了するには、Object メニューの 'Stop Editing Group' を選択する。


Adding and Deleting Groups
グループの追加と削除
 作ったグループは、スタック内の任意の、或いは全てのカードに表示することが出来る。グループをカードに表示するには、メッセージボックスから place コマンドを使うか、Object メニューの 'Place Group' サブメニューからグループ名を選ぶ。( 'Place Group' サブメニューにはカレントカードに place されていないグループ名だけが表示される。グループをカードに2度 place することは出来ない)

 ティップス: 新しいカードを作った時に、自動的に任意のグループをそのカードに place させることも出来る。(訳注:*) こうすれば1番目のカードにグループを作るだけで、ひとつのグループを全てのカードで共有することが出来る。

 (スタックからグループを削除するのではなく、)カレントカードからグループを取り除くには、remove コマンドを使うか、グループを選択して Object メニューから 'Remove Group' を選択する。グループはカレントカードから消えるが、そのグループを共有する他のカードには残っている。

 全てのカードからグループを取り除いても、グループはスタックの一部として残っている。カードに place することも出来るし、start editing コマンドを使ってグループを編集することも出来る。(どのカードにも置かれていないグループを参照する時は、'Group' キーワードではなく 'Background' キーワードを用いる必要がある)

 グループをスタックから完全に削除するには、delete コマンドを使うか、グループを選択して Edit メニューの 'Clear Objects' を選択する。グループを削除すると全てのカードからグループが取り除かれ、スタックからも消える。

 グループを解消してコントロールを元に戻すには、グループを選択して ungroup コマンドを使うか、Object メニューから 'Ungroup' を選択する。 Ungroup によってグループオブジェクトとそのプロパティ(スクリプトを含む)はスタックから消えるが、その中のコントロールは削除されない。それらのコントロールはカレントカードのオブジェクトになり、そのグループの置かれていた他のカードからは消滅する。

 ティップス: グループを Ungroup したあと、カードを移動する前にそれらのコントロールを再度グループ化すれば、そのグループは復活する。しかしカレントカード以外に place されていたグループはそれらのカードには現れない。


Groups and the Message Path
グループとメッセージパス
 グループはグループ内のコントロールのオーナーなので、そのグループは各コントロールのメッセージパスに含まれている。

 また、カードに place されたグループ(訳注:*)は、そのカード上のコントロールのメッセージパスに含まれている。もしカードのコントロールにメッセージを send すると、メッセージはコントロールを通ってカードへ、それからカード上のグループに(グループ番号順に)送られ、更にスタックに流れる。

 もしグループスクリプトをグループ内のオブジェクトにだけ作用させたいなら、ハンドラの最初に以下のスクリプトを入れなさい:
  if the owner of the target is not me then pass message
 これはグループに無いオブジェクトの処理を除外するフィルタである。


訳注:* これらの記述は、グループの the backgroundBehavior プロパティを true にした時の動作です。


邦訳/文責:UDI
2002.12.20
2003.01.04

inserted by FC2 system