ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

copyobj

グラフィックス オブジェクトとその子オブジェクトのコピー

構文

new_handle = copyobj(h,p)
copyobj(___,'legacy')

説明

copyobj は、グラフィックス オブジェクトのコピーを作成し、それらを新しい親に割り当てます。

新しい親は、コピーするオブジェクトに対応したものでなければなりません (たとえば座標軸のコピー先にできるのは Figure と uipanel だけです)。copyobj は子もコピーします。

new_handle = copyobj(h,p) は、h で指定される 1 つ以上のグラフィックス オブジェクトをコピーし、新しいオブジェクトのハンドルまたはそれらの配列を返します。新しいグラフィックス オブジェクトは、p で指定されるグラフィックス オブジェクトの子になります。

copyobj(___,'legacy') は、オブジェクトのコールバック プロパティとアプリケーション データをコピーします。これは、MATLAB® R2014b 以前のバージョンの copyobj と同じ動作です。

コピーされないもの

copyobj では、正常に動作するかどうかが元のコンテキストに依存するプロパティやオブジェクトはコピーされません。既定のコンテキスト メニューが定義されているオブジェクト (凡例やカラー バーなど) の場合、新しいオブジェクト用に新しいコンテキスト メニューが作成されます。Figure の場合は、新しい Figure 用に新しいツール バーとメニューが作成されます。

copyobj"コピーされない" ものは次のとおりです。

  • コールバック プロパティ (legacy オプションを使用する場合は除く)

  • オブジェクトに関連付けられているアプリケーション データ (legacy オプションを使用する場合は除く)

  • 凡例やカラー バーなど、既定のコンテキスト メニューが定義されているオブジェクトのコンテキスト メニュー

  • Figure の既定のツール バーとメニュー

  • copyobj の 1 回の呼び出しで、同じオブジェクトを同一の親オブジェクトに複数回コピーすることはできません。

MATLAB は、Parent プロパティを新しい親に変更し、新しいオブジェクトに新しいハンドルを割り当てます。

表面を別の Figure の新しい座標軸にコピーします。

h = surf(peaks);
colormap hsv

コピー先の Figure と座標軸を作成します。

fig = figure;
ax = axes;

表面を新しい座標軸にコピーし、表面のプロパティ以外のプロパティを設定します。

new_handle = copyobj(h,ax);
colormap(fig,hsv)
view(ax,3)
grid(ax,'on')

表面はコピーされますが、colormapviewgrid はコピーされません。

詳細

すべて折りたたむ

ヒント

hp には、スカラーまたはベクトルを指定できます。両方ともベクトルの場合は、同じ長さでなければならず、出力引数 new_handle は同じ長さのベクトルになります。この場合、new_handle(i)h(i) のコピーで、その Parent プロパティは p(i) に設定されます。

h がスカラーで p がベクトルの場合は、p で指定されるそれぞれのグラフィックス オブジェクトを親として、h が 1 回ずつコピーされます。個々の new_handle(i)h のコピーで、その Parent プロパティは p(i) に設定され、length(new_handle)length(p) と同じです。

h がベクトルで p がスカラーの場合は、個々の new_handle(i)h(i) のコピーで、それぞれの Parent プロパティは p に設定されます。new_handle の長さは length(h) と同じです。

    メモ:   凡例またはカラー バーをコピーするときは、関連付けられている座標軸をコピーしなければなりません。

UI をプログラミングするときは、CreateFcn 内部で copyobj または textwrap (copyobj を呼び出す) を呼び出さないでください。uicontrol オブジェクトをコピーすると、CreateFcn が繰り返し始動します。そのため、反復制限を超えると一連のエラー メッセージが表示されます。

参考

| | | | |

R2006a より前に導入

この情報は役に立ちましたか?