ページにアクセスするOriginのページはワークブック、行列ブック、グラフで構成され、プロジェクト内の中核的なオブジェクトです。Origin Cは名前またはインデックスでページにアクセスでき、foreachステートメントを使って現在のプロジェクトの特定のページタイプのすべてのインスタンスにアクセスできます。
名前とインデックスでページにアクセスする
Project, Get the Existing Window
すべてのページには名前があり、次のサンプルで示すように、ページにアクセスするために使用することができます。
// ページの名前でページにアクセス
GraphPage gp1("Graph1");
//0から始まるインデックスでページにアクセス
GraphPage gp2 = Project.GraphPages(0); // 最初のページは0
アクティブページとレイヤを取得するProject, Get the Active LayerProject, Get the Active Page
ワークブックページではレイヤはワークシート、グラフページではレイヤは対の軸、行列ページではレイヤは行列シートです。
アクティブレイヤのような、特定のレイヤに結びついているページにアクセスしたい場合、Layer::GetPageメソッドを使って行うことができます。
// アクティブレイヤを取得
GraphLayer gl = Project.ActiveLayer();
// レイヤからアクティブページを取得
GraphPage gp = gl.GetPage();
1つのページをアクティブにするActive Page, Page Active
ウィンドウをアクティベートしたいときは、PageBase::SetShow(PAGE_ACTIVATE) を使用します。
// Graph2という名称のグラフウィンドウを付ける
GraphPage gp( "Graph2" );
// ウィンドウをアクティブに設定する
gp.SetShow( PAGE_ACTIVATE );
foreachを使うforeach StatementProject, Loop the Existing Windows
Foreach ステートメントは、コレクション内のすべての項目に対するループの処理を簡単にします。 プロジェクトはさまざまなコレクションのすべてのページを含みます。
// 現在のプロジェクトのすべてのワークブックをループし
// 各ページの名前を出力
foreach( WorksheetPage wksPage in Project.WorksheetPages )
{
out_str(wksPage.GetName());
}
// 現在のプロジェクトのすべての行列ブックをループし
// 各ページの名前を出力
foreach( MatrixPage matPage in Project.MatrixPages )
{
out_str(matPage.GetName());
}
// 現在のプロジェクトのすべてのグラフをループし
// 各ページの名前を出力
foreach( GraphPage gp in Project.GraphPages )
{
out_str(gp.GetName());
}
// 現在のプロジェクトのすべてのページをループし
// 各ページの名前を出力
foreach( PageBase pg in Project.Pages )
{
out_str(pg.GetName());
}
|