Xファンクションのオプション文字列X-Function, Option Strings
目次
- 1 A - 再計算モードX-Function, Recalculate Mode
- 2 B - ブラウザダイアログオプションX-Function, Browser Dialog Options
- 3 C - その他のオプション
- 4 E - 実行制御X-Function, Execution Control
- 5 F - ダイアログ数値表示フォーマットX-Function, Dialog Numeric Display Format
- 6 FT - データプロット選択フィルタX-Function Data Plot Selection Filter
- 7 FV - 出力変数のソースを指定X-Function, Specify the Source of Output Variable
- 8 G - GUIでのグループコントロールX-Function, Grouping Controls on Dialog
- 9 H - 結果表表示スタイルの設定X-Function, Set Result Tables Shown Style
- 10 I - 入力範囲制御の動作を制限X-Function, Input Range Control
- 11 M - 複数行文字列のサポートX-Function, Multi-lines Text Control
- 12 N - 出力オブジェクトのデフォルト名の設定X-Function, Set the Default Name for Output Object
- 13 O - Xファンクション実行後の出力オブジェクトのデフォルト名の動作を設定X-Function, Set Output Object Action
- 14 X-Function, Editable/Disable ControlP - GUIでの編集可能操作の設定
- 15 R - ダイアログコンボボックスの動作を制限X-Function, Dialog Combo Box
- 16 S - 入力変数のデフォルトデータ選択を定義X-Function, Data Selector Default Selection
- 17 SV - Xファンクションダイアログコンボボックス内の文字列のサポート
- 18 X-Function, Dialog ThemeT - テーマから変数をスキップ
- 19 X-Function, Set Output as OptionalU - 出力をオプションとして指定
- 20 X-Function, Set Control as InvisibleV - コントロールを非表示に指定
- 21 X-Function, Editable/Disable ControlX-Function, Branch Check BoxZ - 変数制御のための編集可/不可を設定するチェックボックスを追加
A - 再計算モードX-Function, Recalculate Mode
再計算オプションを使用すると、Xファンクションの再計算モードを制御できます。デフォルトでは、Xファンクションが、入力または出力変数として、XYRange、XYZRange、vector、Column、matrix、MatrixObjectといったOriginオブジェクトタイプを含むとき、手動、自動、なしを再計算モードとして使用できます(デフォルトのモードは手動)。変数が入力変数と出力変数の両方として使用されている場合、再計算モードは禁止され、再計算コンボボックスは非表示になることに注意してください。
A:0x00
Xファンクションダイアログで再計算コンボボックスを非表示にします。
例
- 次の図に示すように、名前と変数を使用して新しいXファンクションを作成します。次に、保存ボタン
をクリックして、Xファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- このXファンクションを、コマンドウィンドウ内でコマンド
OptionStringA -d; と実行します。開いたダイアログには再計算コンボボックスが表示されません。

A:0x01
デフォルトの再計算モードをなしに設定します。このモードは入力変数と出力変数の両方で使用できます。
例
- 次の図に示すように、名前と変数を使用して新しいXファンクションを作成します。次に、保存ボタン
をクリックして、Xファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- このXファンクションを、コマンドウィンドウ内でコマンド
OptionStringA1 -d; と実行します。開いたダイアログでは、再計算コンボボックスでなしが選択されています。

A:0x02
再計算モードで出力列のソートを許可します。出力変数に対してのみ機能します。
例
- 次の図に示すように、名前と変数を使用して新しいXファンクションを作成します。 次に、保存ボタン
をクリックして、Xファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- 1つの列を持つ新規のワークシートを作成し、この列に行番号を入力します。次に列を選択し、コマンドウィンドウでコマンド
OptionStringA2 -d; を使用してXファンクションを実行します。OKボタンをクリックすると、以下のように鍵アイコン付きの2つの空の出力列が表示されます。

- 列Bのヘッダをクリックして選択し、右クリックメニューでソート(ワークシート)を選択します。サブコンテキストメニューで、出力列のソートの方法を指定できます。

A:0x04
再計算モードを許可しますが、再計算コンボボックスはXファンクションダイアログで非表示になります。
B - ブラウザダイアログオプションX-Function, Browser Dialog Options
ブラウザダイアログオプションは、Xファンクションダイアログ内のボタンで開くページ/グラフブラウザダイアログの設定を制御します。また、開いているダイアログをフィルタリングするためにも使用できます。Xファンクショングラフブラウザダイアログの例を参照してください。
B:0x0001
ダイアログが開くとページ/グラフブラウザ内のすべてのページをソートします。
B:0x0002
グラフブラウザから3Dグラフを除外します。
C - その他のオプション
C:0x0001X-Function, Disable Auto Assigning Column Designatioin
複合範囲の列指定の割り当てを無効にします。例えば、XYRange型の出力変数を取ります。 このオプション文字列が変数に指定されていない場合、出力列は2つあり、1つはX、もう1つはYです。そうでない場合、2つの列は両方ともデフォルトのY属性を持ちます。
C:0x0002X-Function, New Hidden Page
非表示状態の新しいページを作成します。
C:0x0004 X-Function, Disable Undo
Xファンクションを元に戻せないようにします。
C:0x0010 X-Function, Missing Data Display Format
デフォルトでは、double型の変数に値がない場合、この変数は何も表示しません(空のセルとなります)。このオプション文字列は、この種類の空の変数を"--"として表示するために使用されます。
C:0x0100 X-Function, Set Output Range Dimension
このオプション文字列はRange型の出力変数に対してのみ使用できます。出力変数が<new>に設定されている場合、有効なOrigin C Rangeオブジェクトが作成されますが、新しい列は作成されません。このオプション文字列は、ユーザがXファンクション本体内の出力範囲オブジェクトの行と列を準備するのを助けます。
C:0x0200
このオプション文字列はRange型の出力変数に対してのみ使用できます。出力変数が<new>に設定されている場合、入力範囲を同じ列数と行数で複製します。
C:0x0400
MarkerInfoとButtonInfo XVariableに適用できます。設定すると非表示になります。
C:0x0800
出力XVariableに適用できます。設定されている場合、書き込み可能チェックは抑制されます。
C:0x1000
任意のXVariableに適用できます。設定されている場合は、ダイアログからのスクリプトを生成を常にサポートします。
C:0x2000
バージョン9.0から利用可能です。Output Page/Layer XVariableに適用できます。設定されている場合、別のXVariableの値をチェックし、"hide" を呼び出して、新しく作成されたページを非表示にするかどうかを決定します。
C:0x4000
バージョン9.0から利用可能です。グループ開始であるXVariable (オプション文字列Gを使用) に適用できます。設定すると、現在のXVariableが非表示の場合でもブランチ全体が非表示になりません。
E - 実行制御X-Function, Execution Control
E:V
XファンクションウィザードとXファンクションバーで変数の真の値を保持するために使用されます。最初の適用ボタンによって作成された先は、その後の適用ボタンによって使用されます。
F - ダイアログ数値表示フォーマットX-Function, Dialog Numeric Display Format
F:*6*
double型の数値を表示するためのフォーマット文字列を提供します。*(Originグローバル数値フォーマット設定)や、.2(10進数2桁)など、標準的なLabTalk数値形式表記を使用できます。
FT - データプロット選択フィルタX-Function Data Plot Selection Filter
FT:str1|str2
グラフからのデータ選択のアクションフィルタのタグを指定します。データオブジェクトにタグstr1またはstr2が含まれている場合、メニューのアクティブグラフページ/レイヤにすべてのプロットを追加するでデータが選択された時に無視されます。
例
この例では、グラフからすべてのプロットを選択するときに、FTオプション文字列を使用してタグ名TestCurvesのデータプロットを除外する方法を示します。
- 次の図に示すように、名前と変数を使用して新しいXファンクションを作成します。 次に、保存ボタン
をクリックして、Xファンクションを< ユーザファイルフォルダ >\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- コードビルダでこのXファンクションを開き、次のコードをコピーしてメインの関数OptionStringFTの本文に貼り付け、コンパイルボタン
をクリックします。
// XYRange出力のためのデータを置く
vector vx, vy;
vx.Data(1, 10, 1);
vy = vx;
oy.SetData(&vy, &vx);
// 指定された名前はオプション文字列 "FT" と同じである必要がある
tag_columns_in_data_range(oy, "TestCurves");
// ソース範囲グラフ取得、グラフに結果をプロット
vector<uint> vnIDs;
if( iy.GetPlots(vnIDs) > 0 )
{
DataPlot dp;
dp = (DataPlot)Project.GetObject(vnIDs[0]);
GraphLayer gl;
dp.GetParent(gl);
gl.AddPlot(oy);
}
- ファイル< Originインストールフォルダ>\Samples\Curve Fitting\Multiple Gaussians.datを新しいワークシートにインポートします。すべての列を選択し、折れ線グラフを作成します。 新しく作成したグラフを選択し、コマンドウィンドウで
OptionStringFT -d; を実行し、OKボタンをクリックしてソースワークシートに出力XY列を生成し、そのプロットをソースグラフに追加します。
- グラフをアクティブにして
OptionStringFT -d; を再度実行し、Xファンクションダイアログを開きます。入力XYブランチには、このデータプロットのタグ名がTestCurvesであるため、上から新たに出力されたデータプロットは表示されません。
FV - 出力変数のソースを指定X-Function, Specify the Source of Output Variable
FV:varname はそれぞれの出力変数のための入力変数の名前を指定します。この変数のブック/シート/オブジェクトの情報はトレースされ、出力変数が<input>/<same>で設定されたときに出力変数と共有されます。例えば、あるXファンクションが3つのXYRange変数を含んでいるとし、最初の2つは入力変数であり、最後の1つは出力変数とします。このオプション文字列で出力変数に入力変数の名前を設定した場合、出力が<input>または<same>に設定された場合、出力列は指定された入力列と同じになります。それ以外の場合、出力列は最初の入力列と同じになります。
G - GUIでのグループコントロールX-Function, Grouping Controls on Dialog
Xファンクションダイアログで関連変数をグループ化するために使用されます。グループの先頭の変数のオプション文字列フィールドにG:Group Nameを追加し、 グループの末尾の変数のオプション文字列フィールドにGを追加します。
G:Group
グループの始まり。デフォルトでは、グループのブランチは閉じています。最初からこのブランチを開いた状態にするには、ダイアログを開き、グループ名の前にG:-Group Name のような - を追加します。ダイアログは次回開かれたときにブランチの状態を記憶します。
G
グループの終わり。
例
- F10を押してXファンクションビルダを開きます。次の画像のようにXファンクションを作成し、保存ボタン
をクリックして、< Originユーザファイルフォルダ >\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- コマンドウィンドウで
OptionStringG -d; を実行します。 次のようなダイアログが開きます。

H - 結果表表示スタイルの設定X-Function, Set Result Tables Shown Style
- 次の図に示すように、名前と変数を使用して新しいXファンクションを作成します。次に、保存ボタン
をクリックして、Xファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

-
コードビルダでこのXファンクションを開き、//put additional include files hereの行の後に次の必要なヘッダファイルを追加します。
#include <ReportTree.h>
- 次のコードをメイン関数 OptionStringHにコピーします。この関数は、選択したデータに対して基本的な統計分析を実行し、結果のレポート シートを準備するために使用されます。
// Data Rangeオブジェクトからデータを取得
matrix mData;
if( rng.GetData(mData) <= 0 )
{
XF_THROW("No data is selected");
}
// 各列の基本統計量を計算
vector vPoints, vSum, vSD;
for(int index = 0; index < mData.GetNumCols(); index++)
{
vector vData;
mData.GetColumn(vData, index);
int nPoints;
double dSum, dSD;
ocmath_basic_summary_stats(vData.GetSize(), vData, &nPoints,
&dSum, &dSD);
vPoints.Add(nPoints);
vSum.Add(dSum);
vSD.Add(dSD);
}
// データ表を作成
int nID = 0; // IDは固有である必要がある
ReportTable rTable = rt.CreateTable("Report", "Report Table", ++nID, 0, 1);
rTable.AddColumn(vPoints, "N", ++nID, "Points", OKDATAOBJ_DESIGNATION_Y);
rTable.AddColumn(vSum, "Sum", ++nID, "Sum", OKDATAOBJ_DESIGNATION_Y);
rTable.AddColumn(vSD, "SD", ++nID, "SD", OKDATAOBJ_DESIGNATION_Y);
// どのフォーマットも指定しないように属性を0とする
// テーブルの表示形式を設定するために、多くのビット GETNBRANCH_*がoc_const.h に定義されている
rTable.SetAttribute(TREE_Table, GETNBRANCH_TRANSPOSE);
-
5列ある新しいワークシートを作成し、全ての列を乱数データで埋めます(全て選択し、右クリックして列値の一律設定:一様乱数を選択)。コマンドウィンドウで
OptionStringH -d; を実行し、ダイアログを開きます。ダイアログで、すべての列が入力データに選択され、レポートに<new>が選択されていることを確認します。OKボタンをクリックすると、レポートシートが通常の形式(H:0)で表示されます。

-
XファンクションビルダでXファンクションを再度開き、H:0をH:1に変更します。そして保存します。コマンドウィンドウで
OptionStringH -d; を実行します。今回は、レポートシートが階層テーブル形式(H:1)で表示されます。

I - 入力範囲制御の動作を制限X-Function, Input Range Control
入力データ範囲を制限し、インタラクティブコントロールの動作を変更します。このオプション文字列は、Range、XYRange、XYRangeComplex、XYZRange、VECTOR、VECTOR <string>、およびVECTOR <complex>の入力データ型に対してのみ機能します。
I:0x0001
第1サブレンジの複数データ選択を許可します。
I:0x0002
第2サブレンジの複数データ選択を許可します。
I:0x0004
第3サブレンジの複数データ選択を許可します。
I:0x0008
すべてのサブレンジの複数データ選択を許可します。
I:0x0010
1つのデータセットに限定します。
I:0x0020
Yエラーをサポートします(XYRangeのみ)。
I:0x0040
Range内でラベルエリアをサポートします。このオプション文字列を使用すると、出力範囲は実行前にデータを消去しません。これはI:0x00040000と同様です。
I:0x0080
出力変数のポップアップメニューに<input>オプションが表示されなくなります。
I:0x0100
出力変数のポップアップメニューに<new>オプションが表示されなくなります。
I:0x0200
出力変数のポップアップリストから(<input>,<new>)オプションがなくなります。XYRangeのみ。
I:0x0400
ポップアップメニューのボタンを削除します。
I:0x0800
インタラクティブボタンを削除します。
I:0x1000
ベクトル型と列型の入力変数にのみ有効です。データ選択用の文字列を取得すると、列はインデックスで識別されますが、列のショートネームは識別されません。
I:0x2000
このオプション文字列は、初期化中にベクトル変数がY列のみを使用するようにします。
I:0x4000
列ブラウザボタンを表示します。
I:0x8000
変数を読み取り専用に設定します。I:0x0400とI:0x0800の両方が一緒に動作します。
I:0x00010000
初期化中またはインタラクティブな瞬間に行の選択を取り除きます。変数型:Column, Range, XYRange
I:0x00020000
シート全体の範囲文字列を列表記に置き換えます。たとえば、Book1内のワークシートSheet1に2つの列が含まれている場合、範囲文字列[Book1]Sheet1は[Book1]Sheet1!1:2に置き換えられます。
I:0x00040000
このオプション文字列は、実行を終了する前に出力範囲のデータを消去しないようにします。このオプション文字列を指定しないと、入力データ範囲に重複がない場合、出力範囲の列は新しいデータを使用する前にクリアされます。
例
- 次の図に示すように、名前と変数を使用して新しいXファンクションを作成します。次に、保存ボタン
をクリックして、Xファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- コードビルダでこのXファンクションを開き、入力列から出力列にデータをコピーする次のコードをメイン関数OptionStringIの本文にコピーし、コンパイルボタン
をクリックします。
orng = irng;
- 列Aと列Bの2列ある新しいワークシートを作成し、A列の最初の10行を選択して右クリックし、表示されたメニューから列値の一律設定:行番号を選択してこれらに行番号を入力します。コマンドウィンドウで
OptionStringI -d; を実行し、列Aを入力、列Bを出力として選択し、OKボタンをクリックします。その結果、列Bにも行番号が入ります。
- 列Aから最初の5行を選択し、右クリックしてコンテキストメニューを開き、削除を選択してこれらの5行を削除します。列Bのヘッダの鍵アイコンの色が緑から黄色に変わります。鍵アイコンをクリックし、ポップアップメニューから再計算を選択します。 その結果、列Bの最後の5行の元のデータが、次の図に示すように保持されます。

I:0x00080000
全ての列を対話型のポップアップメニューで非表示にします。
I:0x00100000
アクティブなグラフレイヤに選択がなく、<active>を使用して範囲変数が設定されている場合、範囲変数はアクティブレイヤのすべてのプロットに設定されます。
I:0x00200000
サンプリング間隔を出力Xとして使用します。
I:0x00400000
I:0x00800000
全ての列を対話型のポップアップメニューで非表示にします。
I:0x02000000
出力XYRangeが<auto>を使用して設定されている場合、このオプションは新しいX列を作成します。
I:0x04000000
行範囲は無視され、単一のブロック範囲のみが有効です。選択範囲がない場合、または選択範囲に1つのセルしか含まれていない場合、選択範囲はワークシート全体と見なされます。
I:0x08000000
インデックスの代わりに最初と最後のX値を使用して範囲文字列を作成します。構文は [BookName]SheetName!ColName[xFirstValue:LastValue] となります。単調なデータに対して非常に有用です。
I:0x10000000
Range変数には係数も重みも持ちません。
M - 複数行文字列のサポートX-Function, Multi-lines Text Control
M:m-n
文字列変数が複数行テキストをサポートするようにします。文字列変数が非表示の場合、m行のテキストがサポートされ、展開した場合、n行がサポートされます。編集コントロールの右下隅でサイズを変更するには、行範囲文字列に*を追加します。
N - 出力オブジェクトのデフォルト名の設定X-Function, Set the Default Name for Output Object
出力オブジェクトのデフォルト名を指定します。
N: Book:="Book Name" Sheet:="Sheet Name"
N: Book:="Book Name" Sheet:="Sheet Name" X:="Object Name"
- MatrixLayer, Image, vector, Column
N: "Name"
N: X:="X Name" Y:="Y Name"
N: X:="X Name" Y:="Y Name" Z:="Z Name"
N: Book:="Book Name" Sheet:="Sheet Name"
バージョン2021b以降、Originは出力名の置換表記をサポートしています(例:N:"Stats of %W")。変数は、User Files\Origin.iniの[OutputLongName]セクションに次のように記載されています。
- %A = 解析機能名 (e.g. FitNL) or Xファンクション名
- %W = 入力シート名
- %N = 入力列のロングネーム、ロングネームがない場合はショートネーム
- %B = 入力ブックのロングネーム
- %S = 入力ブックのショートネーム
例
-
F10を押してXファンクションビルダを開き、下の画像に示す名前と変数を使用して新しいXファンクションを作成します。保存ボタン
をクリックしてXファンクションを保存します。
- Xファンクションをコードビルダで編集するボタン
をクリックして、このXファンクションをコードビルダで開きます。メイン関数OptionStringNの本文にコードinput.CopyTo(output, 0, -1, 0, -1, 0); を入力し、コンパイルボタン をクリックします。
-
新しいワークシートを作成し、任意のデータを入力します。コマンドウィンドウで
OptionStringN -d; を実行します。ダイアログが開いたら、入力ワークシートとしてワークシートを選択し、OKボタンをクリックすると、結果が「[入力ワークシート名]のコピー」という名前の新しいワークシートに生成されます。
O - Xファンクション実行後の出力オブジェクトのデフォルト名の動作を設定X-Function, Set Output Object Action
正常に実行された後の出力変数のアクションを指定します。
O:A
オブジェクトが非表示になっているか、別のフォルダーにあるかに関係なく、対応するOriginオブジェクトをアクティブ化します。
O:C
ワークブックがアクティブウィンドウの場合にのみ、対応するOriginオブジェクトをアクティブ化します。
O:N
対応するOriginオブジェクトをアクティブ化しません。
X-Function, Editable/Disable ControlP - GUIでの編集可能操作の設定
変数がXファンクションダイアログで編集可能であるかどうかを指定します。
P:0 or P:1
P:1はデフォルトのオプション文字列です。このオプション文字列を使用すると、出力変数はOriginオブジェクト型(例えばColumn、Worksheetなど)であり、パラメータの変更を介してXファンクションダイアログを再び表示するときに編集できなくなります。他の型を持つ変数は、オプション文字列をP:0として指定する必要があります。
P:2
ラベルのみが表示され、編集可能フィールドは非表示です。通常はヒントテキストを表示するために使用されます。
P:4
変数を区切り文字としてXファンクションダイアログに表示します。文字列型に対してのみ有効です。
例
-
F10を押してXファンクションビルダを開き、下の画像に示す名前と変数を使用して新しいXファンクションを作成します。次に、保存ボタン
をクリックして、Xファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- Xファンクションをコードビルダで編集するボタン
をクリックして、このXファンクションをコードビルダで開きます。メイン関数OptionStringPの本体にコードout = in + var; を入力し、コンパイルボタン をクリックします。
-
新しいワークシートを作成し、列Aに任意のデータを入力します。コマンドウィンドウで
OptionStringP -d; を実行します。開いたダイアログで、列Aを入力列として選択し、列Bを出力列として選択します。OKボタンをクリックすると、結果が生成され、列Bに格納されます。
-
列Bのヘッダにある鍵アイコンをクリックし、コンテキストメニューからパラメータを変更を選択します。パラメータの変更によって開かれたダイアログと
OptionStringP -d; によって開かれたダイアログの違いを以下の図に示します。

R - ダイアログコンボボックスの動作を制限X-Function, Dialog Combo Box
LabTalkスクリプトを介して呼び出すときに、Xファンクションのコンボボックスの値を制御するために使用されます。ダイアログには影響しません。
R:0
制約はありません。コンボボックス内のリストで定義されている値の他に、LabTalkスクリプトを使用してコンボボックス変数に他の値を代入することもできます。
R:1
デフォルトのオプション文字列。LabTalkスクリプトを使用してコンボボックス変数に代入できるのは、コンボボックス内のリストで定義されている値のみです。
例
- int型の変数(x1という名前)を持つ新しいXファンクション(OptionStringRという名前)を作成します。この変数に対する制御の列に、AA|BB|CC をセットします。
- コマンドウィンドウで
OptionStringR x1:=5; を実行すると、次のエラーが表示されます:#Command Error!
- XファンクションビルダでこのXファンクションを再度開き、オプション文字列列のint変数にR:0を設定してこのXファンクションを保存します。
- コマンドウィンドウで
OptionStringR x1:=5; を再度実行すると、エラーは発生しません。
S - 入力変数のデフォルトデータ選択を定義X-Function, Data Selector Default Selection
入力変数のデフォルトデータオブジェクトを定義します。このオプション文字列はRange型の変数のみに使用されます。
S:0
アクティブなワークシートのすべての列がデータ範囲として選択されています。
S:0x01
アクティブな行列シートの最初の行列オブジェクト、またはアクティブなワークシートの最初の列がデータ範囲として選択されています。
S:0x10
<active>オプションが行列オブジェクトのみを取得するようにします。出力変数の場合、<active>オプションは<new>に置き換えられ、行列ページが作成されます。
SV - Xファンクションダイアログコンボボックス内の文字列のサポート
コンボボックス内の項目値を特殊な値に置き換えます。例えば、int型の変数がControl列のBegin|Mid|End文字列を介してコンボボックスとして設定されている場合、コンボボックス項目のデフォルトの項目値は、それぞれ0、1、2です。オプション文字列 SV:1|5|-1をこの変数に使用した場合、コンボボックス内のアイテムの戻り値はそれぞれ1、5、-1です。
X-Function, Dialog ThemeT - テーマから変数をスキップ
変数をXファンクションダイアログテーマファイルに記憶するかどうかを制御します。このオプション文字列は、デフォルト設定であるツリービューでテーマを選択する場合にのみ有効です。
T:0
指定したテーマが選択されている場合は、そのテーマの値が変数値として使用されます。
T:1
テーマが選択されている場合でも、テーマの値を変数値として使用しません。
T:4
指定されたテーマが選択されている場合、テーマの値と属性の両方が変数によって使用されます。このオプションは、主にXYRange、ImageなどのOrigin内部オブジェクトで使用されます。
X-Function, Set Output as OptionalU - 出力をオプションとして指定
出力変数が必要かどうかを指定します。このオプション文字列は、複数の出力変数を持つXファンクションに対してのみ利用可能です。
U:1
出力変数が選択されたチェックボックスを追加します。これはデフォルトのオプションです。
U:0
出力変数が未選択のチェックボックスを追加します。
U:n
出力変数のチェックボックスを追加しません。
例
- 次の図に示すように、名前と変数を使用して新しいXファンクションを作成します。 次に、保存ボタン
をクリックして、Xファンクションを< ユーザファイルフォルダ >\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- Xファンクションをコードビルダで編集するボタン
をクリックして、このXファンクションをコードビルダで開きます。メイン関数 OptionStringUの本文に次のコードをコピーします。
vector vv;
vv.Data(1,10,1);
if( xx ) // xx変数を出力するかチェック
{
xx = vv;
}
if( yy ) // yy変数を出力するかチェック
{
yy = vv;
}
zz = vv;
- 次のコードをOptionStringU_event1関数に入れ、出力変数のチェックボックスステータスを取得します。コンパイルボタン
をクリックします。
foreach(TreeNode subnode in trGetN.Children)
{
string strVarName = subnode.tagName;
int nUStatus, nOutput;
// 出力変数かチェック
if((subnode.GetAttribute(STR_XF_VAR_IO_ATTRIB, nOutput)
&& IO_OUTPUT == nOutput))
{
// 出力チェックボックスステータスをチェック
if(subnode.GetAttribute(STR_ATTRIB_DYNACONTROL_USE_CHECK, nUStatus))
{
switch(nUStatus)
{
case 1:
printf("%s variable has Output checked check box.\n" , strVarName);
break;
case 0:
printf("%s variable has Output unchecked check box.\n" , strVarName);
break;
}
}
else
{
printf("%s variable NOT Output check box.\n", strVarName);
}
}
}
- コマンドウィンドウで
OptionStringU -d; を実行し、ダイアログの設定はデフォルトのままでOKボタンをクリックします。 これにより、2列の新しいワークシートが作成され、各出力変数のチェックボックスステータスがコマンドウィンドウに表示されます。
X-Function, Set Control as InvisibleV - コントロールを非表示に指定
変数をXファンクションダイアログに表示するかどうかを指定します。
V:0
変数はダイアログに表示されません。
V:1
変数がダイアログに表示されます。
V:2
LabTalkスクリプトを使用すると、変数は非表示になります。
X-Function, Editable/Disable ControlX-Function, Branch Check BoxZ - 変数制御のための編集可/不可を設定するチェックボックスを追加
入力変数の横にチェックボックスを追加して、編集可能かどうかを指定します。構文は次の通りです。Z:State|Label|Behavior
- State: 0または1。チェックボックスのステータスを指定します。
- Label: チェックボックスのラベル。Labelと Behaviorの両方が指定されていない場合、ラベルはデフォルトでAutoになります。
- Behavior:
- 0:チェックボックスがオンかどうかに関係なく、変数は常に編集可能です。
- 1:チェックすると、入力変数は無効になります。
- 2:チェックを外すと、入力変数は無効になります。
例
- 次の図に示すように、名前と変数を使用して新しいXファンクションを作成します。次に、保存ボタン
をクリックして、Xファンクションを< ユーザファイルフォルダ >\X-Functions\OC Guide\に保存します(このフォルダが存在しない場合は作成します)。

- Xファンクションをコードビルダで編集するボタン
をクリックして、このXファンクションをコードビルダで開きます。次のコードをOptionStringZ_event1関数にコピーすると、int型変数のチェックボックスステータスが取得されます。コンパイルボタン をクリックします。
TreeNode trInt = trGetN.nn;
int nAutoType = octree_get_auto_support(&trInt);
switch(nAutoType)
{
case -1:
out_str("Auto check box of int Type control is unchecked");
break;
case 0:
out_str("No auto check box for int Type control");
break;
case 1:
out_str("Auto check box of int Type control is checked");
break;
}
- コマンドウィンドウで
OptionString -d; を実行すると、下の画像のようなダイアログが開きます。TestOKチェックボックスの状態を変更すると、このチェックボックスの状態に関するメッセージがコマンドウィンドウに出力されます。

|