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; と入力して実行します。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指定、もう一方はY指定です。そうではない場合、両方ともデフォルトY指定を持つ2列になります。
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>にセットされている場合、有効なOriginC範囲オブジェクトが作成されます。しかし、それに対する新しい列はありません。このオプションは、Xファンクション本体に出力範囲のための行と列を用意するのに使用します。
C:0x0200
範囲(Range)タイプの出力変数にのみ使用可能なオプション文字列です。もし、出力変数が<new> にセットされている場合、入力範囲と同じ列数、行数で複製します。
C:0x0400
MarkerInfoとButtonInfo XVariableに適用できます。セットすると非表示になります。
C:0x0800
XVariableを出力するために適用します。セットすると、書き込み可能なチェックを抑制します。
C:0x1000
任意のXVariableを適用します。セットするとダイアログからのスクリプト生成をサポートします。
C:0x2000
9.0 から利用可能です。Page/Layer XVariableを出力するために適用します。セットすると、新しく作成したページを非表示にするかを決定するために別のXVariableコール"hide"の値をチェックします。
C:0x4000
9.0 から利用可能です。グループ始まり(オプション文字列G)のXVariableを適用します。セットすると、XVariableが非表示の場合にすべてのブランチを非表示にしません。
E - 実行制御X-Function, Execution Control
E:V
値の真の値を保持するためにXファンクションウィザードとXファンクションバーで使用されます。最初の適用ボタンによって作成された先は、その後の適用ボタンで使用されます。
F - ダイアログ数値表示フォーマットX-Function, Dialog Numeric Display Format
F:*6*
double型で数値を表示するためのフォーマット文字列を提供します。* (Originグローバル数値フォーマット設定)、.2(2桁)といった標準のLabTalkの数値フォーマット表記を使用できます。
FT - データプロット選択フィルタX-Function Data Plot Selection Filter
FT:str1|str2
グラフからデータ選択のアクションフィルターのためのタグを指定します。データオブジェクトにタグstr1 または str2 を含む場合、メニューアイテムアクティブグラフページ/レイヤにすべてのプロットを追加するでデータが選択された時に無視されます。
サンプル
このサンプルでは、グラフから全てのデータが選択された時、タグ名TestCurves 付きのデータプロットを含めないようにFTオプション文字列を使用する方法です。
- 下図のように名前と変数の新しいXファンクションを作成します。 保存ボタンをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
- コードビルダでこのXファンクションを開き、以下のコードをコピーしてメインの関数OptionStringFT内容に貼り付けます。そして、コンパイルボタンをクリックします。
// XYRange出力のためのデータを置く vector vx, vy; vx.Data(1, 10, 1); vy = vx; oy.SetData(&vy, &vx); // 指定された名前はiオプション文字列 "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 Installation Folder>\Samples\Curve Fitting\Multiple Gaussians.dat をインポートします。全ての列を選択し、折れ線図を作成します。 作成したグラフをアクティブにして、コマンドウィンドウに
OptionStringFT -d; を入力して実行します。OKボタンをクリックしてソースワークシートにXY列を生成し、それをソースグラフにプロットします。
- グラフをアクティブにして、再度
OptionStringFT -d; を実行し、Xファンクションダイアログを開きます。Input XY ブランチには、新しく出力されたデータプロットはありません。これは、このデータプロットのTestCurves というタグ名によるものです。
FV - 出力変数のソースを特定X-Function, Specify the Source of Output Variable
FV:varname はそれぞれの出力変数のための入力変数の名前を指定します。この変数のブック/シート/オブジェクトの情報がトレースされ、出力変数が<input>/<same>にセットされているときに出力変数と共有されます。例えば、3つのXYRangeをもつXファンクションを考えます。最初の2つは入力変数で最後の1つは出力変数です。このオプション文字列によって、ひとつの入力変数の名前が出力変数にセットされると、出力が<input> oまたは<same>に設定されている時に出力列は特定の入力列と同じになります。そうではない場合、出力列は1つ目の入力列と同じになります。
G - GUIのグループコントロールX-Function, Grouping Controls on Dialog
Xファンクション内の関連する変数をグループ化するために使用します。オプション文字列にフィールドに、グループの開始変数のためのG:グループ名を追加し、Gをグループの終了のための変数を追加します。
G:Group
グループの開始を指定します。デフォルトでは、グループのブランチは閉じています。最初からこのブランチを開いた状態にするには、ダイアログを開き、グループ名の前にG:-Group Name のような - を追加します。するとダイアログはブランチのステータスを記憶します。
G
グループの終了を指定します。
サンプル
- Xファンクションビルダを開くためにF10キーを押してください。以下の画像のようにXファンクションを作成し、保存ボタンをクリックして<Origin User Files Folder>\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とします
// oc_const.hで定義された多くのビット GETNBRANCH_* は表の表示フォーマットをセットするため
rTable.SetAttribute(TREE_Table, GETNBRANCH_TRANSPOSE);
-
5列ある新しいワークシートを作成し、全ての列を乱数データで埋めます(全て選択し、右クリックして列値の一律設定:一様乱数を選択)。コマンドウィンドウで
OptionStringH -d; を実行し、ダイアログを開きます。ダイアログで、 Input Data としてすべての列が選択され、Reportは<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には、2列あるShee1がある場合、範囲文字列[Book1]Sheet1 はBook1]Sheet1!1:2となります。
I:0x00040000
このオプション文字列は、出力範囲が実行終了前にクリアされないようにします。このオプション文字列がないと、入力データ範囲内にオーバーラップが内場合に、出力範囲の列は字算に新しいデータを使用してクリアされます。
サンプル
- 下図のように名前と変数の新しいXファンクションを作成します。保存ボタンをクリックし、このXファンクションを<ユーザファイルフォルダ>\X-Functions\OC Guide\に保存します(フォルダがない場合、作成します)。
- コードビルダでこのXファンクションを開き、以下の入力列から出力列にでーたをコピーするコードをコピーしてメインの関数OptionStringlの内容に貼り付けます。そして、コンパイルボタンをクリックします。
orng = irng;
- 列Aと列Bの2列ある新しいワークシートを作成し、A列の最初の10行を選択して右クリックし、表示されたメニューから列値の一律設定:行番号を選択してこれらに行番号を入力します。コマンドウィンドウで、
OptionStringI -d; コマンドを実行し、inputとしてA列、outputとしてB列を指定し、OKボタンをクリックします。結果列であるBにも行番号が入力されます。
- A列の最初の5行を選択して、右クリックしてコンテクストメニューを開きます。削除を選択してこれらを削除します。列Bのヘッダにある鍵の色が緑から黄色に変化します。鍵のアイコンをクリックして、ポップアップメニューから再計算を選択します。 下図のように、B列の最後5行には、元のデータがキープされます。
I:0x00080000
全ての列を対話型のポップアップメニューで非表示にします。
I:0x00100000
アクティブグラフレイヤに選択がなく、範囲変数が<active>を使用してセットされている場合、範囲変数はアクティブレイヤ内の全てのプロットにセットされます。
I:0x00200000
出力Xとしてサンプリング間隔を使用します。
I:0x00400000
I:0x00800000
既存の列またはプロットが、対話型のポップアップメニューを表示されます。
I:0x02000000
出力XYRangeが<auto>を使用してセットされている場合、このオプションは新しいX列を作成します。
I:0x04000000
行範囲は無視され、1つのブロック範囲のみ有効です。選択がない、あるいは、1つの単一セルのみが選択である場合、選択はすべてのワークシートと解釈されます。
I:0x08000000
インデックスの代わりに最初の最後のX値を使用して範囲文字列を作成します。シンタックスは、[BookName]SheetName!ColName[xFirstValue:LastValue]これは単調なデータに非常に便利です。
I:0x10000000
範囲変数はファクターと重みを持ちません。
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 = 入力ブックのショートネーム
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 はデフォルトのオプション文字列です。パラメータの変更を経由して再びXファンクションダイアログを立ち上げる時、このオプション文字列を使用して、列、ワークシートなどのOriginのオブジェクトタイプである出力変数は、編集できないようになります。他のタイプの変数でそのようにする場合、オプション文字列を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をInput Column、列BをOutput Columnとして選択します。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ファンクションダイアログコンボボックス内の文字列のサポート
コンボボックスのアイテム値を特別な値に置き換えます。例えば、制御列でBegin|Mid|End 文字列をとおしてint型の変数がコンボボックスにセットされた場合、このコンボボックスのデフォルトのアイテム値は、それぞれ0、1、2です。変数に対して、オプショ文字列SV:1|5|-1 iが使用されている場合、コンボボックス内に返るアイテム値はそれぞれ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チェックボックスのステータスを変更するとコマンドウィンドにこのチェックボックスのステータスについてメッセージが表示されます。
|