| WideStudio Programming Guide | WideStudio Index 目次

> ## オブジェクトに配置されている子オブジェクトを取得するには

> 子オブジェクトを取得する関数には、次のようなメソッドを利用します。

> 子取得メンバ関数 | 機能
> WSCbase* getChildInstance(char*) | オブジェクト名称指定による取得
> WSClistData getChildren() | 配置される子オブジェクトの取得
> long getAllChildren(WSClistData＆) | 配置される全ての子オブジェクトの取得

> ### 特定の子オブジェクトを取得するには

> 特定の子オブジェクトを取得するには、メンバ関数 getChildInstance() を利用します。

>     void event_procedure(WSCbase* object){
>       //特定の子オブジェクトを名称を指定して取得
>       WSCbase* child = object->getChildInstance("newpbtn001");
>       if (child != NULL){
>         //特定の子オブジェクトにアクセス
>         child->setVisible(True);
>       }
>     }

> object が配置しているの子オブジェクトを名称指定で取得しているところです。 名称指定で子オブジェクトを取得する場合、再帰的(子オブジェクトに配置されている 子オブジェクトまで)に検索します。もし指定した名称のオブジェクトが見つからなかった 場合、NULL が返されます。

> ### 子オブジェクトを取得するには

> オブジェクトに配置されている子オブジェクトを取得するには、メンバ関数 getChildren()を利用します。

> ###

> ###

>     void event_procedure(WSCbase* object){
>       //子オブジェクトリストの取得
>       WSClistData children = object->getChildren();
>       //子オブジェクトの個数
>       long num = children.getNum();
>       long i;
>       for(i=0; i<num; i++){
>         //子オブジェクトの取得
>         WSCbase* child = (WSCbase*)children[i];
>     //  WSCbase* child = (WSCbase*)children.getData(i); //でも良い
>         //子オブジェクトにアクセス
>         child->setVisible(False);
>       }
>     }
>     </PRE>

>       object に配置されているの子オブジェクトを取得しているところです。子
>       オブジェクトは WSClistData(リストデータオブジェクト)に格納されて返値
>       されます。個々のオブジェクトは、そのリストデータから、メンバ関数
>       getData(i)か、配列演算子[i] で取得し、WSCbase* にキャストして取得し
>       て下さい。

>           全ての子オブジェクトを取得するには

>       存在する子オブジェクト全てを取得するには、メンバ関数
>     getAllChildren() を利用します。

>     void event_procedure(WSCbase* object){
>       //子オブジェクトを格納するリストデータの宣言
>       WSClistData children;
>       //子オブジェクトを取得
>       object->getAllChildren(children);
>       //子オブジェクトの個数
>       long num = children.getNum();
>       long i;
>       for(i=0; i<num; i++){
>         //子オブジェクトの取得
>         WSCbase* child = (WSCbase*)children[i];
>         //子オブジェクトにアクセス
>         child->setVisible(True);
>       }
>     }
>     </PRE>

>       object に配置されているの全ての子オブジェクトを取得しているところで
>       す。getChildren() と異なるところは、再帰的に全ての子オブジェクトを取
>       得するところです。

>      親アプリケーションウィンドウに配置された子オブジェクトを取得するには

>       存在する子オブジェクト全てを取得するには、メンバ関数
>       getAllChildren() を利用しますが、それを、親アプリケーションウィンド
>       ウで行います。

>     void cbop(WSCbase* object){
>       //親アプリケーションウィンドウの取得
>       WSCbase* win = object->getParentWindow();
>       //子オブジェクトを格納するリストデータの宣言
>       WSClistData children;
>       //親アプリケーションウィンドウに配置された子オブジェクトを取得
>       win->getAllChildren(children);
>       //子オブジェクトの個数
>       long num = children.getNum();
>       long i;
>       for(i=0; i<num; i++){
>         //子オブジェクトの取得
>         WSCbase* child = (WSCbase*)children[i];
>         //子オブジェクトにアクセス
>         child->setVisible(False);
>       }
>     }
>     </PRE>

>       親アプリケーションウィンドウに配置されているの全ての子オブジェクトを取得しているところです。

Document Release 3.70 for WideStudio ver 3.70, May 2004

WideStudio documents index | 目次

Copyright(C) WideStudio Development Team, 1999-2004 | Last modified: May 25, 2004