グラフィックオブジェクト

グラフィックオブジェクトはOriginの子ウィンドウにあり、Originのユーザによって作成されます。これらのオブジェクトはラベル、矢印、線及びその他ユーザーによって作成されたグラフィックエレメントを含みます。これらのオブジェクトはオブジェクトプロパティダイアログのプログラミングタブで定義されたそれらの名前を使ってスクリプトからアクセスできます。Origin2017より前のバージョンでは、プログラミングコントロールダイアログボックスと呼ばれていました。

このダイアログボックスを開くには、これらの方法があります。

  • オブジェクトをクリックして選択し、メニューからフォーマット:オブジェクトプロパティを選択します。Origin2017より前のバージョンでは、フォーマット:プログラミングコントロールです。
  • オブジェクト上で右クリックして、プロパティを選択します。その後、プログラミングタブに移動します。Origin2017より前のバージョンでは、プログラミングコントロールというコンテキストメニューがあります。
  • オブジェクトをAlt+ダブルクリックします。
Note:オブジェクトは選択不可に設定できます。選択不可のオブジェクトにアクセスしたい場合はまず編集:編集モードメニューにチェックを入れる必要があります。Origin2017より前のバージョンでは、これは編集モードボタンと呼ばれていました。

ダイアログボックスのプログラミングタブのテキストボックスにスクリプトを入力すると、これらのラベルにスクリプトを添付できます。このスクリプトの実行トリガーは~のあとでスクリプトを実行のあとでスクリプトを実行ドロップダウンから設定できます。

一般的には、LabTalkスクリプトからアクセスできるのは名前のついたオブジェクトのみです。ただし、名前のないオブジェクトでもこの後書くようにthis.表記を使えばダイアログのプログラミングタブからスクリプトでアクセスすることができます。

GObject 変数型

GObjectはレイヤにあるグラフィックオブジェクトのLabTalk変数型です。削除する場合はLabel -r objectNameを使うことができます。

一般的なシンタックスは:

GObject name = [GraphPageName]LayerName!ObjectName; // ページ名、レイヤ名、オブジェクト名を使用

GObject name = [GraphPageName]LayerIndex!ObjectName; // ページ名、レイヤ番号、オブジェクト名を使用

GObject name = LayerName!ObjectName; // ページをアクティブにしてレイヤ名、オブジェクト名を使用

GObject name = LayerIndex!ObjectName; // ページをアクティブにしてレイヤ番号、オブジェクト名を使用

GObject name = ObjectName; // ページ、レイヤをアクティブにしてオブジェクト名を使用

既存のオブジェクトとまだ作成されていないオブジェクトの両方に対して GObject 変数を宣言できます。

例えば、

//ここではGObjectを宣言してそのグラフィックオブジェクトを作成します
win -t plot;          // グラフウィンドウを作成

// ‘line1’に接続された myLine という名前の GObject を宣言
GObject myLine = line1; 
//ここでオブジェクトを作成します(リストoには'line1'が表示されます)
draw -n myLine -lm {1,2,3,4}; 
win -t plot;          // 新しいグラフウィンドウを作成

// myLineがアクティブでない異なるグラフにあったとしても、
// GObject名を使ってまだそれを制御することができます
myLine.X += 2; // Move the line

label -r myLine; //オブジェクトを削除

// 多くの場合、グラフィック オブジェクトは既に存在します 
GObject leg = legend; // 凡例オブジェクトに紐づける
leg.fsize = 28; // フォントサイズを28に設定
leg.color = color(blue); // テキストの色を青に
leg.background = 0; // 周囲のボックスをオフにする

Note:元のグラフをアクティブにしたlist o には、物理的なオブジェクト名であるline1が表示されますが、プログラミングの構成要素であるmyLineは表示されません。

プロパティ

これらのオブジェクトの一般的なプロパティを以下に示します。すべてのプロパティがすべてのオブジェクトに適用されるわけではありません。例えば、テキストプロパティは線オブジェクトには適用されません。

構文

[winName!]objName.property = value;

または

this.property = value;

  • WinName! はグラフィックオブジェクトがアクティブでないページにある場合に必要です。これは名前付きオブジェクトが存在するウィンドウを指定します。オブジェクトが存在するレイヤは、そのページのアクティブなレイヤである必要があります。宣言したGObjectを使う場合、WinNameは必要ありません。
  • objNameオブジェクトプロパティダイアログボックスにあるオブジェクトの名前のテキストボックスに表示されているオブジェクトの名前か、もしくは宣言したGObject変数の名前です。
  • Propertyは利用できるobjNameプロパティの1つです。
objectName.=を実行するとほぼすべてのオブジェクトのプロパティを見ることができます。

一般的なプロパティ

プロパティ アクセス 説明
align 読み込み/書き込み
数値
2D グラフの凡例オブジェクト (オブジェクト名 = Legend) にのみ適用されます。凡例項目を複数の列にドラッグするときに、各列を整列するかどうかを制御します。0= 整列しない、 1= 各列で凡例項目を整列する(Origin 2015 SR0)
arrowBeginLength 読み込み/書き込み
数値
ポイントサイズの矢印の開始長さ
arrowBeginShape 読み込み/書き込み
数値
オブジェクトコントロールダイアログボックスのドロップダウンリストの位置による矢印の開始形状:0=なし、1=塗りつぶし、2=シェブロン、など
arrowBeginWidth 読み込み/書き込み
数値
ポイントサイズの矢印の開始幅
arrowEndLength 読み込み/書き込み
数値
ポイントサイズの矢印の終了長さ
arrowEndShape 読み込み/書き込み
数値
オブジェクトコントロールダイアログボックスのドロップダウンリストの位置による矢印の終了形状:0=なし、1=塗りつぶし、2=シェブロン、など
arrowEndWidth 読み込み/書き込み
数値
ポイントサイズの矢印の終了幅
arrowPosition 読み込み/書き込み
数値
折れ線やフリーハンドオブジェクトの各線分に対する矢印の表示を制御します。

0 = 矢印なし
1 = それぞれの線分の開始に矢印
2 = それぞれの線分の終了に矢印
3 = それぞれの線分の開始終了両方に矢印

Note: arrowBeginShapearrowEndShape はセットで使う必要があります。

attach 読み込み/書き込み
数値
接続先:

0= レイヤ
1= ページ
2= 軸スケール

attach$ 読み取り専用
文字列
オブジェクトがページに接続されている場合のページ名そうでなければ、[PageName]LayerName!の形式でレイヤ名を返します
Origin 8.5 SR0
auto 読み込み/書き込み
数値
プロパティの変更後に自動的に再描画: 0= 無効、1= 有効
background 読み込み/書き込み
数値
オブジェクトの背景を次のように制御します: 0= 背景なし、1= 黒線、2= 影、3= ダークマーブル、4= 白地、5= 黒地
borderColor 読み込み/書き込み
数値
LabTalk の色リストからカラーインデックスとして書き込まれたり読み取られたりするオブジェクトの境界線の色また、名前(LT List of Colorsのみ)、HTMLカラーコード、RGB値を使って、Color関数でオブジェクトに色を割り当てる(例:text.bordercolor=color("#2F1BE3"))こともできます。
clip 読み込み/書き込み
数値
レイヤに関連付けられたグラフィックオブジェクトの表示が、レイヤの枠でプロットを切り取る設定に従うかどうかを決定します。0(デフォルト)=オブジェクトをレイヤ枠で切り取らない、1=枠でプロットを切り取る設定に従い、プロットの切り取りが有効な場合はレイヤフレーム外にあるオブジェクトを切り取る(非表示にする)。
color 読み込み/書き込み
数値
線、テキスト、縁のカラーインデックス番号name.color=color(red);ようにColor関数を使用します。
crop$ 読み込み/書き込み
文字列
グラフ上のイメージオブジェクトを切り取る

gr.Crop$=left top right bottom

dx
dy
読み込み/書き込み
数値
軸の単位の幅と高さ
direction 読み込み/書き込み
数値
グラフィックオブジェクトのラインを水平方向/垂直方向にどのようにストレッチ/スパンするかコントロールします。

0 = なし
1 = 水平l
2 = 垂直
3 = 角なし
4 = 角のみ
5 = 全てのレイヤを水平に結ぶ
6 = 全てのレイヤを垂直に結ぶ
7 = ページ全体で水平に結ぶ
8 = ページ全体で垂直に結ぶ
9 = レイヤ全体で水平に結ぶ
10 = レイヤ全体で垂直に結ぶ

enable 読み込み/書き込み
数値
オブジェクトのホットスポットを有効にする:0 = 無効、1 = 有効
event 読み取り専用
数値
オブジェクトのスクリプト実行のトリガーとなるアクション。0 = なし、1 = ボタンアップ、2 = 移動、3 = サイズ変更、4 = 移動/サイズ変更、5 = 再描画、6 = リアルタイム、7 = ウィンドウオープン、8 = ウィンドウクローズ、9 = ウィンドウアクティブ、10 = ウィンドウ非アクティブ、11 = 新規選択、12 = 保存前、13 = 軸の再スケール、14 = 全イベント、15 = マスクの変更、16 = データの変更。
fillColor 読み込み/書き込み
数値
LabTalk の色リストからカラーインデックスとして書き込まれたり読み取られたりするオブジェクトの塗りつぶしの色また、名前(LT List of Colorsのみ)、HTMLカラーコード、RGB値を使って、Color関数でオブジェクトに色を割り当てる(例:text.bordercolor=color("#2F1BE3"))こともできます。
font 読み込み/書き込み
数値
テキストラベルフォントインデックス番号name.font = font(arial);'のようにFont関数を使用します。
fSize 読み込み/書き込み
数値
テキストラベルフォントサイズ
getXY 読み取り専用
数値
オブジェクトからXYの値をデータセットにコピー
height 読み取り専用
数値
レイヤー座標単位での高さ
hGap 読み込み/書き込み
数値
2Dグラフの凡例オブジェクト (オブジェクト名 = Legend) にのみ適用されます。各凡例入力列の水平方向の間隔を、フォントの高さに対する割合で指定する。(Origin 2015 SR0)
hMove 読み込み/書き込み
数値
水平移動:0=無効、1=有効
index 読み取り専用
数値
UIMオブジェクトのような複数のアイテムから構成されるオブジェクトにのみ適用オブジェクト内のどの項目がWindowsのアクションの影響を受けたかを示します。
keepInside 読み込み/書き込み
数値
オブジェクトの移動をレイヤフレーム内に制限する。0 = 無効、1 = 有効
left 読み込み/書き込み
数値
物理座標で表示されるオブジェクトの左位置。
lineType 読み込み/書き込み
数値
線と矢印のオブジェクトの線種。1 = 実線、2 = 点線、3 = 点線
lineWidth 読み込み/書き込み
数値
線または矢印オブジェクトの線幅
link 読み込み/書き込み
数値
置換レベル:0 = リンクなし、1 = リンクして再帰的に解決、2 = リンクして最初のレベルのみ解決、3 = リンクして最大2レベルまで解決(Origin 2015 SR1)
margin.unit 読み込み/書き込み
数値
これはグラフィックオブジェクトがテキストオブジェクトの場合にのみ有効です。テキストとその境界線の間の余白を定義する単位を指定します。1 = フォントの高さのパーセント (デフォルト)。 0 = テキスト全体の高さのパーセント(Origin 2015 SR0)
margin.left
margin.right
margin.top
margin.bottom
読み込み/書き込み
数値
これらはグラフィックオブジェクトがテキストオブジェクトの場合にのみ有効です。テキストとそのボーダーの間の左/右/上/下マージンを指定する。値はテキストマージン単位に対するパーセンテージで、単位はmargin.unitプロパティで定義される。(Origin 2015 SR0)
mouse 読み込み/書き込み
数値
オブジェクトへのマウスアクセス:0 = 無効、1 = 有効。
name$ 書き込み専用
文字列
オブジェクト名
pageRect$ 読み込み/書き込み
文字列
RECTの位置を単位(pixelなど)で取得/設定します。
path$ 読み込み/書き込み
文字列
グラフレイヤに挿入されたイメージオブジェクトでのみ利用可能です。ローカルディスクもしくはWebからどちらを利用して挿入しているかに関わらず、画像のソースのパスを返します。

例: svg.path$=; はSVGイメージオブジェクトのパスを取得します。

pointCount 読み込み/書き込み
数値
ポリオブジェクト(多角形、折れ線)の点数
realTime 読み込み/書き込み
数値
テキストラベルメッセージの置換表記をリアルタイムに更新する。0 = 無効、1 = 有効。
revVideo 読み込み/書き込み
数値
ビデオ表示の反転:0 = 無効、1 = 有効
roi 読み込み/書き込み
数値
オブジェクトがROIであるかどうか:0 = ROIでない、1 = ROI(Origin 2022)
rotate 読み込み/書き込み
数値
テキストラベルやSVG画像の回転を度で表す。
savedata 読み込み/書き込み
数値
グラフレイヤに挿入されたイメージオブジェクトでのみ利用可能です。”リンクされた”イメージオブジェクトを取得/設定します。

0 = ファイルにリンクする
1 = イメージをプロジェクトに保存する

script 読み込み/書き込み
数値
ラベル制御のダイアログボックスにあるドロップダウンリストから~のあとでスクリプトを実行モードのインデックス番号
setXY 書き込み専用
数値
xy値をデータセットからオブジェクトにコピー
show 読み込み/書き込み
数値
オブジェクトの表示。1 = 可視、0 = 非表示非表示オブジェクトは選択できません。
shadowColor 読み込み/書き込み
数値
LabTalkの色リストからカラーインデックスとして書き込まれたり読み取られたりするテキストオブジェクトの影の色また、名前(LT List of Colorsのみ)、HTMLカラーコード、RGB値を使って、Color関数でオブジェクトに色を割り当てる(例:text.bordercolor=color("#2F1BE3"))こともできます。
shadowWidth 読み込み/書き込み
数値
ポイントサイズのテキストオブジェクトの影の幅
states 読み込み/書き込み
数値
オブジェクトの編集状態を制御このプロパティはビット指向であるため、値を追加することができます。

例:polygon.states = 3でpolygonというオブジェクトのリサイズと回転を無効にする。

0=全ての制御を有効にする
1=リサイズを無効にする
2=回転を無効にする
4=ゆがみを無効にする
8=個別ポイントの移動を無効にする
16=インプレイス編集を無効にする
32=テキストラベルの枠線のサイズ変更を無効にする
64=水平移動を無効にする
128=垂直移動を無効にする

tableStyle 読み込み/書き込み*
数値
テーブルヘッダ、フレーム、およびグリッドの表示を制御それぞれ1つしか選択できない(つまり、=0と=1の両方を設定することはできず、代わりに=2が設定される)

0 = 列ヘッダ
1 = 行ヘッダ
2 = 列と行ヘッダ
3 = ヘッダなし

5 = 上下フレーム
6 = 左右フレーム
7 = 全フレーム
8 = フレームなし

10 = ヘッダ区切り文字
11 = 全グリッド
12 = グリッドなし

* ヘッダスタイルのみ読み込み可能ですのでご注意ください。すべて(ヘッダ、フレーム、グリッド)書くことができます。数値は加算されません。

text$ 読み込み/書き込み
文字列
テキストラベルで表示されるメッセージ
top 読み込み/書き込み
数値
物理座標で表示されるオブジェクトの上位置。
transparency 読み込み/書き込み
数値
オブジェクトの透過率を設定します。矩形、円、多角形、領域オブジェクトにのみ有効です。(Origin 9.0 SR0)

rect.transparency = 50; //透過率を50%に設定

type 読み取り専用
数値
グラフィックオブジェクトの型を返します。(Origin 9.0 SR1)

0 = テキスト
1 = 矩形
2 = 矢印または線
3 = ハンドル
5 = グループ
6 = 文字列
7 = データ

type$ 読み取り専用
文字列
グラフィックオブジェクトの型文字列を返します。(Origin 2015 SR0)
vgap 読み込み/書き込み
数値
2Dグラフの凡例オブジェクト (オブジェクト名 = Legend) にのみ適用されます。各凡例入力行の垂直方向の間隔を、フォントの高さに対する割合で指定する。(Origin 2015 SR0)
vMove 読み込み/書き込み
数値
垂直移動:0=無効、1=有効
whiteout 読み込み/書き込み
数値
テキストオブジェクトの白地を有効にする。0 = 無効、1 = 有効
width 読み取り専用
数値
レイヤ座標単位での幅
wrap 読み込み/書き込み
数値
オブジェクトのサイズ変更時にテキストの折り返しを有効にする:0 = 無効、1 = 有効 (Origin 2015 SR0)
wrapwidth 読み込み/書き込み
数値
オブジェクト内のテキストの折り返し幅を指定する。wrap を1としたときのみ有効(Origin 2015 SR0)
x
y
読み込み/書き込み
数値
オブジェクトの中央の軸XY座標

Notes:

  1. 現在のオブジェクトに別のオブジェクトを合わせるには、現在のオブジェクトのdxdyxyを使って、移動させるオブジェクトのxyを計算します。(下のサンプルをご覧ください。)
  2. 実際には、どんなグラフィックオブジェクトにも、見えない矩形が関連付けられています。 XとYは実際には矩形の中心です。また、ピクセル単位であるため、スケール単位に変換すると精度が落ちる可能性があります。線オブジェクトの軸位置を知りたい場合は、x, yの代わりにx#, y#を使うとよいでしょう。
x#
y#
読み込み/書き込み
数値
x#y#はオブジェクトの#番目の点の軸位置です。直線と矢印は2点、長方形と円は4点、その他の物体は多くの点を持つことがあります。


loop(ii,1,4) {circle.x$(ii)=;circle.y$(ii)=;}

サンプル

  • レイヤの左上に凡例を配置する
legend.background = 1;
legend.y = layer1.y.to - legend.dy / 2;
legend.x = layer1.x.from + legend.dx / 2;
  • circle1という名前の円オブジェクトの色を変更する
// まず最初にグラフ上に円オブジェクトを作成します
// 次にそれを下記2行のスクリプトで”circle1”という名前に変更します
circle1.color = 1; // 黒の境界線
circle1.fillcolor = color(yellow); // 黄色で塗りつぶし
  • フローティンググラフオブジェクトのソースグラフ名を取得します。これは、フローティンググラフオブジェクトの名前が "bmp "で、アクティブなワークシートにあることを想定しています。
// bmp.type$ は ”Embedded Graph: [GraphName]” を返します
// GraphName はソースグラフの実際の名前です
// 次のスクリプトは bmp.type$ からGraphNameを取りだすときに使います。 
%A = %[%(bmp.type$), >18];
ty %[%A, %[%A]];// GraphNameの値が出力されます

Note: 部分文字列の表記は GraphNameを取り出す際に使います。

  • オブジェクト "ポリライン "のxy座標をワークシートにコピーする。
polyline.getXY([Book1]1!A, [Book1]1!B);
  • ワークシートのXY列の座標を使用してオブジェクト "Rect1 "を配置します。
draw -n Rect1 -b; // Rect1オブジェクトを描きます
Rect1.setXY(Book1_A, Book1_B); // Book1_A(X),Book1_B(Y)に座標を代入します
  • イメージを切り取る
win -t plot;
string strInitPath$=system.path.program$+"Samples\Image Processing and Analysis";
dlgfile g:="*.jpg" m:=1 init:=strInitPath$;
int nn=fname.GetNumTokens(CRLF);
int cleft=50, ctop=30, cright=150, cbottom=130;
for(int ii = 1; ii <= nn; ii++) {
	string strf$ = fname.GetToken(ii, CRLF)$;
	string strGr$;
	insertImg2g fname:= strf$ type:=IMG xyp:=page oname:=strGr$;
	GObject gr = strGr$;
	gr.Crop$="$(cleft) $(ctop) $(cright) $(cbottom)"; //切り取り
	int nx = ii*page.width/5;
	int ny = 1000;
	gr.PageRect$="$(nx) $(ny) $(nx+600) $(ny + 600)";
}

選択したオブジェクトプロパティ

選択したグラフィックオブジェクトの基本的な特性を、構文を使って制御することができます。

s.property = value;

下記リストが利用可能なプロパティです。

プロパティ

プロパティ アクセス 説明
FONT 読み込み/書き込み
数値
選択したテキストオブジェクトのフォントサイズname.font = font(arial); のようにFont関数を使用します。
SIZE 読み込み/書き込み
数値
選択したオブジェクトのサイズ
BOLD 読み込み/書き込み
数値
選択したテキストオブジェクトの太字設定
ANGLE 読み込み/書き込み
数値
選択したオブジェクトの回転角度

例えば下記のように使えます。

s.size = 50;

これを使用してテキストオブジェクトが選択された場合のサイズを制御します。.

メソッド

これらのオブジェクトの一般的なメソッドを以下に示します。すべてのメソッドがすべてのオブジェクトに適用されるわけではありません。例えば、addtextメソッドは線オブジェクトには適用されません。

構文

[winName!]objName.Method(arguments)

または

this.Method(argument)

  • WinName! はグラフィックオブジェクトがアクティブでないページにある場合に必要です。これは名前付きオブジェクトが存在するウィンドウを指定します。オブジェクトが存在するレイヤは、そのページのアクティブなレイヤである必要があります。宣言したGObjectを使う場合、WinNameは必要ありません。
  • objNameプログラミング制御ダイアログボックスにあるオブジェクトの名前のテキストボックスに表示されているオブジェクトの名前か、もしくは宣言したGObject変数の名前です。
  • Methodは利用できるobjNameプロパティの1つです。
  • 引数はメソッド固有です。
objectName.=を実行するとほぼすべてのオブジェクトのメソッドを見ることができます。

一般的なメソッド

メソッド 説明
addText(string) テキストラベルに文字列を追加する。変更を表示するには、画面の更新が必要です。
click(n) オブジェクトn番目のホットスポットをクリックすることをシミュレートします。UIMオブジェクトの特徴として、複数のホットスポットがあります。
crop(left top right bottom) グラフ上のイメージオブジェクトを切り出します
draw(option) オブジェクトを再描画します。

option = local : オブジェクトのホットスポットを再描画
option = global : オブジェクト全体を再描画

run() objectに含まれるスクリプトを実行します。

サンプル

  • テキスト追加.
// 文字列変数の宣言と値の代入
string stringVariable$ = " (modified)";
// 文字列レジスタ(A)に値を代入
// 新しい行がどのように値に含まれているかに注意してください
%A = "
Final";
//  既存の'text'という名前のオブジェクトに様々なテキストを追加
text.addtext("%(stringVariable$)");
text.addtext("%(CRLF)Data passes all tests");
text.addtext(A); // 文字列レジスタに引用符や%は不要です
// そして強制的にリフレッシュします
text.draw();

Note%(CRLF)は、宣言文字列またはリテラル文字列にDOS改行(キャリッジリターン、ラインフィード)を追加する置換記法です。

  • オブジェクトのn番目のホットスポットをクリックすることをシミュレートします。UIMオブジェクトの特徴として、複数のホットスポットがあります。
object.click(n);
  • オブジェクトを再描画します。Option = local でホットスポットを再描画します。Option = global で全オブジェクトを再描画します。
object.draw(option);
  • objectのスクリプトを実行します。
object.run();
  • イメージを切り出します。
string strInitPath$=system.path.program$+"Samples\Image Processing and Analysis";
dlgfile g:="*.jpg" m:=1 init:=strInitPath$;
int nn=fname.GetNumTokens(CRLF);
int cleft=50, ctop=30, cright=150, cbottom=130;
for(int ii = 1; ii <= nn; ii++) {
	string strf$ = fname.GetToken(ii, CRLF)$;
	string strGr$;
	insertImg2g fname:= strf$ type:=IMG xyp:=page oname:=strGr$;
	GObject gr = strGr$;
	if(gr.Crop($(cleft) $(ctop) $(cright) $(cbottom)) == 0) {
		int nx = ii*page.width/5;
		int ny = 1000;
		gr.PageRect$="$(nx) $(ny) $(nx+600) $(ny + 600)";
	}
}

接続メソッド

グラフィックオブジェクトは、接続メソッドを使用して接続することができ、接続の動作を制御するさまざまなオプションとオプションの接続線が表示されます。

なお、Origin 2022bでは、ターゲットテキストオブジェクトとソース描画オブジェクトを接続するための”相対位置”メソッドが追加されました。このメソッドは、以前の”接続”メソッドに追加されるものですが、”相対位置”には、dwRigid(>= 17)、nTargetRefPt(= 0)、nSourceRefPt(>= 26)の特定の値が必要となることに注意してください。URPC=1(デフォルト)の場合、GUIオブジェクトの距離計測アスタリスクブラケットプロット操作・オブジェクト作成ツールバー)がこのメソッドで追加されます。

構文

sourceObject.Connect(targetObject, bVisible, dwRigid, nTargetRefPt, nSourceRefPt)

  • sourceObjectには、オブジェクト名またはGObject変数を指定することができます。
  • sourceObject.Connect(targetObject) は、コネクタの UID を返します。


パラメータ

名前 説明

targetObject

接続先となるオブジェクト。 これはオブジェクト名、GObject変数、データセット名/プロット範囲です。
指定しない場合、ソースオブジェクトへのすべての接続が削除され、他のパラメーターは無視されます。

bVisible

ゼロでない場合、コネクタは表示され、それ以外の場合、変数は非表示になります。
指定しない場合、コネクタは非表示になります。

dwRigid

コネクタの強固さ以下のいずれかの値に設定します。

1 = targetObject は sourceObject の移動時に追従する。
2 = targetObjectが移動したとき、sourceObjectはtargetObjectに追従する。
3 = どちらか一方のオブジェクトを動かすと、もう一方が追従する。
17 = 相対位置コネクタを使用し、sourceObjectが移動するとtargetObjectがsourceObjectに追従する。
18 = 相対位置コネクタを使用し、targetObject が移動すると sourceObject は targetObject に追従する。
19 = 相対位置コネクタを使用し、どちらかを動かすとそれぞれのオブジェクトがもう一方に追従する。

このパラメータを指定しない場合、デフォルトの1が使用されます。

nTargetRefPt

ターゲットオブジェクトの基準点。Valueは以下のいずれかです。

0 = 自動 (テキストオブジェクトのアンカーを使用して位置を設定するため、相対位置指定方式では必須)
1 = 左下
2 = 左
3 = 左上
4 = 上
5 = 右上
6 = 右
7 = 右下
8 = 下
9 = フリー1
10 = フリー2
11 = フリー3
12 = サイズ

nSourceRefPt

接続されるオブジェクトの基準点。標準的な接続メソッドの場合、許容される値についてはnTargetRefPtパラメータを参照してください。相対位置方式の場合、値は以下のいずれかです。

26 = 左下
27 = 左
28 = 左上
29 = 上
30 = 右上
31 = 右
32 = 右下
33 = 下
34 = 中心
35 = 開始
36 = 中央
37 = 終了
  • 線/矢印/曲線の矢印の場合、nSourceRefPtは35, 36, 37とすることをおすすめします。
  • 矩形/円/多角形/領域の場合、nSourceRefPtは26~34とすることをおすすめします。
  • 折れ線/曲線/フリーハンド描画の場合、オブジェクトの形状と好みのラベル位置でnSourceRefPtを決定します。

サンプル

// GObject 変数を使用
// 2つのレイヤを持つグラフをアクティブに
// それぞれのレイヤに同じ名前のテキストオブジェクトがあります
GObject aa = [Graph1]1!text;
GObject bb = [Graph1]2!text;
bb.Connect(aa,1);
// オブジェクト名を使用
// グラフ上で"myTextLabel"という名前のテキストオブジェクトを作成
// さらに "myLine"という名前の線オブジェクトを作成
myTextLabel.Connect(myLine,0);
// GObject 変数と オブジェクト名を使用
// グラフのレイヤ1で "myTextLabel"という名前のテキストオブジェクトを作成
// さらに "myLine"という名前の線オブジェクトを作成
GObject aa = [Graph1]1!myTextLabel;
aa.Connect(myLine,0);
// レイヤ1に線プロットを作成、グラフをアクティブにし、
//テキストオブジェクトを追加 
GObject aa = 1!text;
range rr = 1!1;
aa.Connect(rr,1,1,3);
// 相対位置メソッド
// rect "と "text "という2つのオブジェクトがあるとして
// テキストを矩形の左下隅に貼り付ける
rect.connect(text, 0, 17, 0, 26);

GetConnected メソッド

1つのグラフィックオブジェクトは、その接続されたすべてのグラフィックオブジェクトをこのメソッドで取得することができます。

label コマンドも参照してください。

構文

graphicObject.GetConnected(stringArray, option=0)

  • graphicObjectには、オブジェクト名またはGObject変数を指定することができます。

戻り値

接続されているグラフィックオブジェクトの数を返します。接続されたグラフィックオブジェクトがない場合は、0を返します。

パラメータ

名前 説明

stringArray

接続されたすべてのグラフィックオブジェクトの名前を格納するために使用される文字列配列。

option

0 の場合、直接接続されたグラフィックオブジェクトのみを取得します。 1つの場合、グラフィックオブジェクトを再帰的に取得します。

// GObject 変数を使用
GObject go = [Graph1]1!text;
StringArray sa; 
numObjs = go.GetConnected(sa);
// 再帰的にオブジェクト名を使用
StringArray sa;
numObjs = myLine.GetConnected(sa, 1);
// 接続されたグラフィックオブジェクトの名前を取得する
StringArray sa;
numObjs = myLine.GetConnected(sa,1);
if(numObjs>0)  //接続されたオブジェクトがある場合
{
	for(int iObj=1; iObj<=numObjs; iObj++)  //接続されたオブジェクト名を出力
	{
		string str$ = sa.GetAt(iObj)$;  // 名前を取得
		type %(str$);  // 型名
	}
}

一般的なサンプル

  • Graph2ウィンドウのArrowオブジェクトの水平方向の移動を無効にするスクリプトです。
Graph2!Arrow.hmove = 0;
  • スクリプトウィンドウに入力すると、次のスクリプトは、Buttonオブジェクトの中心のX、Y座標をスクリプトウィンドウに出力します。
Button.x =;
Button.y =;
  • 次のスクリプトは、Graph1ウィンドウのModeというオブジェクトに関連付けられたスクリプトを実行します。
Graph1!mode.run();
  • 最後のスクリプトは、draw()メソッドを使って、Data2ウィンドウにWksDataオブジェクトを再描画しています。
Data2!WksData.draw(global);