オブジェクト関数

 

ObjectCreate

この関数は、指定された名称、型、及び指定されたチャートサブウィンドウでの初期座標を使用してオブジェクトを作成します。作成時には 30 までの座標を指定することが出来ます。

bool  ObjectCreate(
long        chart_id,      // チャート識別子
string      name,          // オブジェクト名
ENUM_OBJECT type,          // オブジェクトの型
sub_window   nwin,          // ウィンドウインデックス
datetime    time1,        // 1 番目のアンカーポイントの時間
double      price1,        // 1 番目のアンカーポイントの価格
  …
datetime    timeN=0,      // N 番目のアンカーポイントの時間
double      priceN=0,      // N 番目のアンカーポイントの価格
  …
datetime    time30=0,      // 30番目のアンカーポイントの時間
double      price30=0      // 30番目のアンカーポイントの価格
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名名称は、サブウィンドウを含めたチャート内で一意でなければなりません。

[in]  オブジェクトの型値は ENUM_OBJECT 列挙のいずれかです。

sub_window

[in]  チャートサブウィンドウの番号。( 0 はメインチャートウィンドウ)指定されたサブウィンドウは存在しなければなりません。さもないと、この関数は false を返します。

time1

[in]  1 番目のアンカーの時間座標

price1

[in]  1 番目のアンカーの価格座標

timeN=0

[in]  N 番目のアンカーの時間座標

priceN=0

[in]  N 番目のアンカーの価格座標

time30=0

[in]  30番目のアンカーの時間座標

price30=0

[in]  30番目のアンカーの価格座標

戻り値

この関数は、指定されたチャートのキューにコマンドが正常に追加された場合はtrueを返し、それ以外の場合はfalseを返します。オブジェクトが既に作成されている場合は、その座標の変更を試みます。

注意事項

ObjectCreate()では常に非同期呼び出しが使用されます。これが、この関数がチャートキューにコマンドを追加した結果だけを返す理由です。この場合、trueはコマンドが正常にエンキューされたことを意味しますのみで、その実行結果は不明です。

コマンドの実行結果を確認するにはObjectFind()関数またはオブジェクトプロパティをレクエストするObjectGetXXXなどのその他の関数を使用できます。ただし、そのような関数はそのチャートのキューの最後に追加され、(同期呼び出しのために)実行結果を待つため、時間がかかる可能性があります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

オブジェクト名は 63 字を超えられません。

チャートに指標を含むサブウィンドウが存在する場合、チャートサブウィンドウの番号付けは 1 から始まります。チャートのメインウィンドウは常に 0 インデックスを持ちます。

大多数(最大30)のアンカーポイントは、将来の使用のために実装されています。同時に、グラフィックオブジェクトのためのアンカーポイントの30での上限は、関数を呼び出す時に使用出来るパラメータ数の制限(64以下)によって決定されています。

オブジェクトの名称が変更された場合、2 つのイベントが同時に形成されます。これらのイベントはエキスパートアドバイザーまたは指標の OnChartEvent() 関数によって処理されます。

  • 古い名称のオブジェクトの削除イベント
  • 新しい名称のオブジェクトの作成イベント

それぞれのオブジェクトの型の作成時には、特定の数のアンカーポイントのを指定する必要があります。

ID

説明

アンカーポイント

OBJ_VLINE

垂直線。

1 つのアンカーポイント実際には時間座標のみが使用されます。

OBJ_HLINE

水平線。

1 つのアンカーポイント実際には価格座標のみが使用されます。

OBJ_TREND

傾向線。

2 つのアンカーポイント

OBJ_TRENDBYANGLE

角度による傾向線。

2 つのアンカーポイント

OBJ_CYCLES

サイクルライン。

2 つのアンカーポイント

OBJ_ARROWED_LINE

矢印。

2 つのアンカーポイント

OBJ_CHANNEL

等距離チャンネル。

3 つのアンカーポイント

OBJ_STDDEVCHANNEL

標準偏差チャンネル。

2 つのアンカーポイント

OBJ_REGRESSION

線形回帰チャンネル。

2 つのアンカーポイント

OBJ_PITCHFORK

アンドリューズピッチフォーク。

3 つのアンカーポイント

OBJ_GANNLINE

ギャンライン。

2 つのアンカーポイント

OBJ_GANNFAN

ギャンファン(扇)。

2 つのアンカーポイント

OBJ_GANNGRID

ギャングリッド。

2 つのアンカーポイント

OBJ_FIBO

フィボナッチリトレースメント。

2 つのアンカーポイント

OBJ_FIBOTIMES

フィボナッチタイムゾーン。

2 つのアンカーポイント

OBJ_FIBOFAN

フィボナッチファン(扇)。

2 つのアンカーポイント

OBJ_FIBOARC

フィボナッチアーク(円弧)。

2 つのアンカーポイント

OBJ_FIBOCHANNEL

フィボナッチチャンネル。

3 つのアンカーポイント

OBJ_EXPANSION

フィボナッチ拡張。

3 つのアンカーポイント

OBJ_ELLIOTWAVE5

エリオット動機波。

5 つのアンカーポイント

OBJ_ELLIOTWAVE3

エリオット修正波。

3 つのアンカーポイント

OBJ_RECTANGLE

長方形。

2 つのアンカーポイント

OBJ_TRIANGLE

三角形。

3 つのアンカーポイント

OBJ_ELLIPSE

楕円形。

3 つのアンカーポイント

OBJ_ARROW_THUMB_UP

サムズアップ。

1 つのアンカーポイント

OBJ_ARROW_THUMB_DOWN

サムズダウン。

1 つのアンカーポイント

OBJ_ARROW_UP

上矢印。

1 つのアンカーポイント

OBJ_ARROW_DOWN

下矢印。

1 つのアンカーポイント

OBJ_ARROW_STOP

ストップサイン。

1 つのアンカーポイント

OBJ_ARROW_CHECK

チェックサイン。

1 つのアンカーポイント

OBJ_ARROW_LEFT_PRICE

左プライスラベル。

1 つのアンカーポイント

OBJ_ARROW_RIGHT_PRICE

右プライスラベル。

1 つのアンカーポイント

OBJ_ARROW_BUY

買いサイン。

1 つのアンカーポイント

OBJ_ARROW_SELL

売りサイン。

1 つのアンカーポイント

OBJ_ARROW

矢印。

1 つのアンカーポイント

OBJ_TEXT

テキスト。

1 つのアンカーポイント

OBJ_LABEL

ラベル。

位置は OBJPROP_XDISTANCE 及び OBJPROP_YDISTANCE プロパティで設定されます。

OBJ_BUTTON

ボタン。

位置は OBJPROP_XDISTANCE 及び OBJPROP_YDISTANCE プロパティで設定されます。

OBJ_CHART

チャート。

位置は OBJPROP_XDISTANCE 及び OBJPROP_YDISTANCE プロパティで設定されます。

OBJ_BITMAP

ビットマップ。

1 つのアンカーポイント

OBJ_BITMAP_LABEL

ビットマップラベル。

位置は OBJPROP_XDISTANCE 及び OBJPROP_YDISTANCE プロパティで設定されます。

OBJ_EDIT

編集。

位置は OBJPROP_XDISTANCE 及び OBJPROP_YDISTANCE プロパティで設定されます。

OBJ_EVENT

経済カレンダーのイベントに対応する「イベント」オブジェクト。

1 つのアンカーポイント実際には時間座標のみが使用されます。

OBJ_RECTANGLE_LABEL

カスタムグラフィカルインタフェースを作成及び設計するための「四角形ラベル」オブジェクト。

位置は OBJPROP_XDISTANCE 及び OBJPROP_YDISTANCE プロパティで設定されます。

ObjectName

この関数は、指定されたチャートの指定されたサブウィンドウで、指定された型を持つオブジェクトの名称を返します。

string  ObjectName(
long  chart_id,          // チャート識別子
int  pos,                // オブジェクトリスト内での番号
int  sub_window=-1,      // ウィンドウ番号
int  type=-1            // オブジェクトの型
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

pos

[in]  サブウィンドウの数と種類によって指定されたフィルタに応じたオブジェクトの序数

sub_window=-1

[in]  チャートサブウィンドウの番号。( 0 はメインウィンドウ、-1 はメインウィンドウを含む全てのサブウィンドウ)

type=-1

[in]  オブジェクトの型。値は ENUM_OBJECT 列挙のいずれかです。-1 は全ての型を意味します。

戻り値

成功の場合はオブジェクト名

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

オブジェクトの名称が変更された場合、2 つのイベントが同時に形成されます。これらのイベントはエキスパートアドバイザーまたは指標の OnChartEvent() 関数によって処理されます。

  • 古い名称のオブジェクトの削除イベント
  • 新しい名称のオブジェクトの作成イベント

ObjectDelete

この関数は指定された名称のオブジェクトを指定されたチャートから削除します。

bool  ObjectDelete(
long    chart_id,     // チャート識別子
string  name          // オブジェクト名
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  削除されるオブジェクト名

戻り値

この関数は、指定されたチャートのキューにコマンドが正常に追加された場合はtrueを返し、それ以外の場合はfalseを返します。

注意事項

ObjectDelete()では常に非同期呼び出しが使用されます。これが、この関数がチャートキューにコマンドを追加した結果だけを返す理由です。この場合、trueはコマンドが正常にエンキューされたことを意味しますのみで、その実行結果は不明です。

コマンドの実行結果を確認するにはObjectFind()関数またはオブジェクトプロパティをレクエストするObjectGetXXXなどのその他の関数を使用できます。ただし、そのような関数はそのチャートのキューの最後に追加され、(同期呼び出しのために)実行結果を待つため、時間がかかる可能性があります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

オブジェクトの名称が変更された場合、2 つのイベントが同時に形成されます。これらのイベントはエキスパートアドバイザーまたは指標の OnChartEvent() 関数によって処理されます。

  • 古い名称のオブジェクトの削除イベント
  • 新しい名称のオブジェクトの作成イベント

ObjectsDeleteAll

指定された型のオブジェクトを全て指定されたチャートまたはチャートサブウィンドウから削除します。

int  ObjectsDeleteAll(
long  chart_id,           // チャート識別子
int  sub_window=-1,      // ウィンドウ番号
int  type=-1            // オブジェクトの型
);

オブジェクト名のプレフィックスを使用して、指定された型のオブジェクトを全て削除します。

int  ObjectsDeleteAll(
long           chart_id// チャート識別子
const string     prefix// オブジェクト名のプレフィックス
int      sub_window=-1// ウィンドウ番号
int     object_type=-1   // オブジェクトの型
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

prefix

[in]  オブジェクト名のプレフィックス。名称がこの文字のセットから始まる全てのオブジェクトがチャートから削除されます。プレフィックスは ‘name’ または ‘name*’ として指定でき、両バージョンの機能は同じです。空の文字列がプレフィックスとして指定された場合、全ての名称のオブジェクトが削除されます。

sub_window=-1

[in] チャートサブウィンドウの番号( 0 はメインウィンドウ、-1 はメインウィンドウを含む全てのサブウィンドウ)

type=-1

[in]  オブジェクトの型。値は ENUM_OBJECT 列挙のいずれかです。-1 は全ての型を意味します。

戻り値

削除されたオブジェクトの数。エラーの詳細を読むには GetLastError() を呼びます。

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

ObjectFind

この関数は指定された ID を持つチャートで指定された名称のオブジェクトを探します。

int  ObjectFind(
long    chart_id,    // チャート識別子
string  name          // オブジェクト名
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  探されるオブジェクトの名称

戻り値

成功した場合、オブジェクトが見つかったサブウィンドウの番号( 0 はメインウィンドウ)。オブジェクトが見つからなかった場合、負の数。エラーの詳細を読むには GetLastError() を呼びます。

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

オブジェクトの名称が変更された場合、2 つのイベントが同時に形成されます。これらのイベントはエキスパートアドバイザーまたは指標の OnChartEvent() 関数によって処理されます。

  • 古い名称のオブジェクトの削除イベント
  • 新しい名称のオブジェクトの作成イベント

ObjectGetTimeByValue

この関数は、指定されたオブジェクトの指定された価格値に対応する時間値を返します。

datetime  ObjectGetTimeByValue(
long    chart_id,    // チャート識別子
string  name,        // オブジェクト名
double  value,        // 価格
int    line_id       // 行番号
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

value

[in]  価格値

line_id

[in]  ラインID

戻り値

指定されたオブジェクトの指定された価格値に対応する時間値

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

オブジェクト 1 つの価格座標で複数の値を持つことが出来るため、行番号を指定する必要があります。この関数は、次のオブジェクトにのみ適用されます。

  • トレンドライン(OBJ_TREND)
  • アングルトレンド(OBJ_TRENDBYANGLE)
  • ギャンライン(OBJ_GANNLINE)
  • 等距離チャンネル(OBJ_CHANNEL) – 2 ライン
  • 線形回帰チャンネル (OBJ_REGRESSION) – 3 ライン
  • 標準偏差チャンネル(OBJ_STDDEVCHANNEL) – 3 ライン
  • 矢印線(OBJ_ARROWED_LINE)

参照

オブジェクト型

ObjectGetValueByTime

この関数は、指定されたオブジェクトの指定された時間値に対応する価格値を返します。

double  ObjectGetValueByTime(
long      chart_id,    // チャート識別子
string    name,        // オブジェクト名
datetime  time,        // 時間
int      line_id      // 行番号
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

time

[in]  時刻

line_id

[in]  線の識別子

戻り値

指定されたオブジェクトの指定された時間値に対応する価格値

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

オブジェクト 1 つの価格座標で複数の値を持つことが出来るため、行番号を指定する必要があります。この関数は、次のオブジェクトにのみ適用されます。

  • トレンドライン(OBJ_TREND)
  • アングルトレンド(OBJ_TRENDBYANGLE)
  • ギャンライン(OBJ_GANNLINE)
  • 等距離チャンネル(OBJ_CHANNEL) – 2 ライン
  • 線形回帰チャンネル (OBJ_REGRESSION) – 3 ライン
  • 標準偏差チャンネル(OBJ_STDDEVCHANNEL) – 3 ライン
  • 矢印線(OBJ_ARROWED_LINE)

参照

オブジェクト型

ObjectMove

この関数は、指定されたアンカーポイントまたはオブジェクトの座標を変更します。

bool  ObjectMove(
long      chart_id,        // チャート識別子
string    name,            // オブジェクト名
int      point_index,    // アンカーポイント番号
datetime  time,            // 時間
double    price            // 価格
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

point_index

[in]  アンカーポイントのインデックス。アンカーポイントの数はオブジェクト型によって違います。

time

[in]  選択されたアンカーポイントの時間座標

価格

[in]  選択されたアンカーポイントの価格座標

戻り値

この関数は、指定されたチャートのキューにコマンドが正常に追加された場合はtrueを返し、それ以外の場合はfalseを返します。

注意事項

ObjectMove()では常に非同期呼び出しが使用されます。これが、この関数がチャートキューにコマンドを追加した結果だけを返す理由です。この場合、trueはコマンドが正常にエンキューされたことを意味しますのみで、その実行結果は不明です。

コマンドの実行結果を確認するにはオブジェクトプロパティをレクエストするObjectGetXXXなどのその他の関数を使用できます。ただし、そのような関数はそのチャートのキューの最後に追加され、(同期呼び出しのために)実行結果を待つため、時間がかかる可能性があります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

ObjectsTotal

この関数は、指定されたチャートの指定されたサブウィンドウで、指定された型を持つオブジェクトの数を返します。

int  ObjectsTotal(
long  chart_id,          // チャート識別子
int  sub_window=-1,      // ウィンドウ番号
int  type=-1            // オブジェクトの型
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

sub_window=-1

[in]  チャートサブウィンドウの番号。( 0 はメインウィンドウ、-1 はメインウィンドウを含む全てのサブウィンドウ)

type=-1

[in]  オブジェクトの型。値は ENUM_OBJECT 列挙のいずれかです。-1 は全ての型を意味します。

戻り値

オブジェクトの数

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

ObjectSetDouble

この関数は、対応するオブジェクトプロパティの値を設定します。オブジェクトプロパティは double 型でなければなりません。この関数には 2 つのバージョンがあります。

修飾語なしでのプロパティ値の設定

bool  ObjectSetDouble(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_DOUBLE    prop_id,          // プロパティ
double                          prop_value         // 値
);

修飾子を使用してのプロパティ値の設定

bool  ObjectSetDouble(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_DOUBLE    prop_id,          // プロパティ
int                            prop_modifier,    // 修飾子
double                          prop_value         // 値
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

prop_id

[in]  オブジェクトプロパティ識別子。値は ENUM_OBJECT_PROPERTY_DOUBLE 列挙のいずれかです。

prop_modifier

[in]  指定されたプロパティの修飾子。修飾子はフィボナッチツールのレべル数及びグラフィックオブジェクトのアンドリューズピッチフォークを示します。 レベルの番号付けは0から始まります。

prop_value

[in]  プロパティ値

戻り値

グラフィックオブジェクトのプロパティ変更コマンドが正常にチャートに送信された場合にのみ true、その他の場合は false。エラーの詳細を読むには GetLastError() を呼びます。

注意事項

この関数は非同期呼び出しを使用します。つまり、この関数は指定されたチャートのキューに追加されたコマンドの実行を待機せずに、代わりに、すぐに制御を返します。

コマンドの実行結果を確認するには指定されたオブジェクトプロパティをレクエストする関数を使用できますが、そのような関数はそのチャートのキューの最後に追加され、実行結果を待つため時間がかかることにご注意ください。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

フィボナッチオブジェクトを作成し新しいレベルを追加する例

//+——————————————————————+
//| スクリプトプログラムを開始する関数                                          |
//+——————————————————————+
void OnStart()
{
//— 補助配列
double high[],low[],price1,price2;
datetime time[],time1,time2;
//— 始値のコピー – 最新の100バーで充分
int copied=CopyHigh(Symbol(),0,0,100,high);
if(copied<=0)
{
Print(“Failed to copy the values of the High price series”);
return;
}
//— 終値のコピー – 最新の100バーで充分
copied=CopyLow(Symbol(),0,0,100,low);
if(copied<=0)
{
Print(“Failed to copy the values of the Low price series”);
return;
}
//— 最後の100バーの始値を複製する
copied=CopyTime(Symbol(),0,0,100,time);
if(copied<=0)
{
Print(“Failed to copy the values of the price series of Time”);
return;
}
//— 複製されたデータへのアクセスを時系列のように(反対に)整理する
ArraySetAsSeries(high,true);
ArraySetAsSeries(low,true);
ArraySetAsSeries(time,true);

//— フィボナッチオブジェクトの初めのアンカーポイントの座標
price1=high[70];
time1=time[70];
//— フィボナッチオブジェクトの2 番目のアンカーポイントの座標
price2=low[50];
time2=time[50];

//— フィボナッチオブジェクトを作成する
bool created=ObjectCreate(0,“Fibo”,OBJ_FIBO,0,time1,price1,time2,price2);
if(created) // オブジェクト作成が成功した場合
{
//— フィボナッチレベルの色を設定する
ObjectSetInteger(0,“Fibo”,OBJPROP_LEVELCOLOR,Blue);
//— フィボナッチレベルの数を見つける
int levels=ObjectGetInteger(0,“Fibo”,OBJPROP_LEVELS);
Print(“Fibo levels before = “,levels);
//—操作ログに出力 => number of level:value level_desription
for(int i=0;i<levels;i++)
{
Print(i,“: “,ObjectGetDouble(0,“Fibo”,OBJPROP_LEVELVALUE,i),
”  “,ObjectGetString(0,“Fibo”,OBJPROP_LEVELTEXT,i));
}
//— 単位当たりのレベルの数の増加を試みる
bool modified=ObjectSetInteger(0,“Fibo”,OBJPROP_LEVELS,levels+1);
if(!modified) // レベル数の変更に失敗
{
Print(“Failed to change the number of levels of Fibo, error “,GetLastError());
}
//— 情報のみ
Print(“Fibo levels after = “,ObjectGetInteger(0,“Fibo”,OBJPROP_LEVELS));
//— 新しく作成したレベルの値を設定する
bool added=ObjectSetDouble(0,“Fibo”,OBJPROP_LEVELVALUE,levels,133);
if(added) // レベルに値を設定することができた
{
Print(“Successfully set one more Fibo level”);
//— レベル説明を忘れずに設定
ObjectSetString(0,“Fibo”,OBJPROP_LEVELTEXT,levels,“my level”);
ChartRedraw(0);
//— フィボナッチオブジェクトの実際のレベル数を取得する
levels=ObjectGetInteger(0,“Fibo”,OBJPROP_LEVELS);
Print(“Fibo levels after adding = “,levels);
//— 確認のためにもう一度全レベルを出力する
for(int i=0;i<levels;i++)
{
Print(i,“:”,ObjectGetDouble(0,“Fibo”,OBJPROP_LEVELVALUE,i),
”  “,ObjectGetString(0,“Fibo”,OBJPROP_LEVELTEXT,i));
}
}
else // フィボナッチオブジェクトのレベル数を増加しようとすると失敗する
{
Print(“Failed to set one more Fibo level. Error “,GetLastError());
}
}
}

参照

オブジェクトの型、オブジェクトプロパティ

ObjectSetInteger

この関数は、対応するオブジェクトプロパティの値を設定します。オブジェクトプロパティは datetime、int、color、bool または char 型でなければなりません。この関数には 2 つのバージョンがあります。

修飾語なしでのプロパティ値の設定

bool  ObjectSetInteger(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_INTEGER    prop_id,          // プロパティ
long                            prop_value         // 値
);

修飾子を使用してのプロパティ値の設定

bool  ObjectSetInteger(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_INTEGER    prop_id,          // プロパティ
int                              prop_modifier,    // 修飾子
long                            prop_value         // 値
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

prop_id

[in]  オブジェクトプロパティ識別子。値は ENUM_OBJECT_PROPERTY_INTEGER 列挙のいずれかです。

prop_modifier

[in]  指定されたプロパティの修飾子。修飾子はフィボナッチツールのレベル数及びグラフィックオブジェクトのアンドリューズピッチフォークを示します。 レベルの番号付けは0から始まります。

prop_value

[in]  プロパティ値

戻り値

グラフィックオブジェクトのプロパティ変更コマンドが正常にチャートに送信された場合にのみ true、その他の場合は false。エラーの詳細を読むには GetLastError() を呼びます。

注意事項

この関数は非同期呼び出しを使用します。つまり、この関数は指定されたチャートのキューに追加されたコマンドの実行を待機せずに、代わりに、すぐに制御を返します。

コマンドの実行結果を確認するには指定されたオブジェクトプロパティをレクエストする関数を使用できますが、そのような関数はそのチャートのキューの最後に追加され、実行結果を待つため時間がかかることにご注意ください。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

ウェブカラーの表を作成する例

//+——————————————————————+
//|                                               Table of Web Colors|
//|                         Copyright 2011, MetaQuotes Software Corp |
//|                                       https://www.metaquotes.net |
//+——————————————————————+
#define X_SIZE 140     // 編集オブジェクトの幅
#define Y_SIZE 33       // 編集オブジェクトの幅の高さ
//+——————————————————————+
//| ウェブカラーの配列                                                     |
//+——————————————————————+
color ExtClr[140]=
{
clrAliceBlue,clrAntiqueWhite,clrAqua,clrAquamarine,clrAzure,clrBeige,clrBisque,clrBlack,clrBlanchedAlmond,
clrBlue,clrBlueViolet,clrBrown,clrBurlyWood,clrCadetBlue,clrChartreuse,clrChocolate,clrCoral,clrCornflowerBlue,
clrCornsilk,clrCrimson,clrCyan,clrDarkBlue,clrDarkCyan,clrDarkGoldenrod,clrDarkGray,clrDarkGreen,clrDarkKhaki,
clrDarkMagenta,clrDarkOliveGreen,clrDarkOrange,clrDarkOrchid,clrDarkRed,clrDarkSalmon,clrDarkSeaGreen,
clrDarkSlateBlue,clrDarkSlateGray,clrDarkTurquoise,clrDarkViolet,clrDeepPink,clrDeepSkyBlue,clrDimGray,
clrDodgerBlue,clrFireBrick,clrFloralWhite,clrForestGreen,clrFuchsia,clrGainsboro,clrGhostWhite,clrGold,
clrGoldenrod,clrGray,clrGreen,clrGreenYellow,clrHoneydew,clrHotPink,clrIndianRed,clrIndigo,clrIvory,clrKhaki,
clrLavender,clrLavenderBlush,clrLawnGreen,clrLemonChiffon,clrLightBlue,clrLightCoral,clrLightCyan,
clrLightGoldenrod,clrLightGreen,clrLightGray,clrLightPink,clrLightSalmon,clrLightSeaGreen,clrLightSkyBlue,
clrLightSlateGray,clrLightSteelBlue,clrLightYellow,clrLime,clrLimeGreen,clrLinen,clrMagenta,clrMaroon,
clrMediumAquamarine,clrMediumBlue,clrMediumOrchid,clrMediumPurple,clrMediumSeaGreen,clrMediumSlateBlue,
clrMediumSpringGreen,clrMediumTurquoise,clrMediumVioletRed,clrMidnightBlue,clrMintCream,clrMistyRose,clrMoccasin,
clrNavajoWhite,clrNavy,clrOldLace,clrOlive,clrOliveDrab,clrOrange,clrOrangeRed,clrOrchid,clrPaleGoldenrod,
clrPaleGreen,clrPaleTurquoise,clrPaleVioletRed,clrPapayaWhip,clrPeachPuff,clrPeru,clrPink,clrPlum,clrPowderBlue,
clrPurple,clrRed,clrRosyBrown,clrRoyalBlue,clrSaddleBrown,clrSalmon,clrSandyBrown,clrSeaGreen,clrSeashell,
clrSienna,clrSilver,clrSkyBlue,clrSlateBlue,clrSlateGray,clrSnow,clrSpringGreen,clrSteelBlue,clrTan,clrTeal,
clrThistle,clrTomato,clrTurquoise,clrViolet,clrWheat,clrWhite,clrWhiteSmoke,clrYellow,clrYellowGreen
};
//+——————————————————————+
//| 編集オブジェクトを作成と初期化                                           |
//+——————————————————————+
void CreateColorBox(int x,int y,color c)
{
//— 新しい編集オブジェクトの名称を作成
string name=“ColorBox_”+(string)x+“_”+(string)y;
//— 新しい編集オブジェクトを作成
if(!ObjectCreate(0,name,OBJ_EDIT,0,0,0))
{
Print(“Cannot create: ‘”,name,“‘”);
return;
}
//— 座礁、幅及び高さを設定する
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x*X_SIZE);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y*Y_SIZE);
ObjectSetInteger(0,name,OBJPROP_XSIZE,X_SIZE);
ObjectSetInteger(0,name,OBJPROP_YSIZE,Y_SIZE);
//— テキストの色を設定する
if(clrBlack==c) ObjectSetInteger(0,name,OBJPROP_COLOR,clrWhite);
else           ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);
//— 背景色を設定する
ObjectSetInteger(0,name,OBJPROP_BGCOLOR,c);
//— テキストを設定する
ObjectSetString(0,name,OBJPROP_TEXT,(string)c);
}
//+——————————————————————+
//| スクリプトプログラムを開始する関数                                          |
//+——————————————————————+
void OnStart()
{
//— 色のついた編集オブジェクトの 7×20 の表を作る
for(uint i=0;i<140;i++)
CreateColorBox(i%7,i/7,ExtClr[i]);
}

参照

オブジェクトの型、オブジェクトプロパティ

ObjectSetString

この関数は、対応するオブジェクトプロパティの値を設定します。オブジェクトプロパティは string 型でなければなりません。この関数には 2 つのバージョンがあります。

修飾語なしでのプロパティ値の設定

bool  ObjectSetString(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_STRING    prop_id,          // プロパティ
string                          prop_value         // 値
);

修飾子を使用してのプロパティ値の設定

bool  ObjectSetString(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_STRING    prop_id,          // プロパティ
int                            prop_modifier,    // 修飾子
string                          prop_value         // 値
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

prop_id

[in]  オブジェクトプロパティ識別子。値は ENUM_OBJECT_PROPERTY_STRING 列挙のいずれかです。

prop_modifier

[in]  指定されたプロパティの修飾子。修飾子はフィボナッチツールのレベル数及びグラフィックオブジェクトのアンドリューズピッチフォークを示します。 レベルの番号付けは0から始まります。

prop_value

[in]  プロパティ値

戻り値

グラフィックオブジェクトのプロパティ変更コマンドが正常にチャートに送信された場合にのみ true、その他の場合は false。エラーの詳細を読むには GetLastError() を呼びます。

注意事項

この関数は非同期呼び出しを使用します。つまり、この関数は指定されたチャートのキューに追加されたコマンドの実行を待機せずに、代わりに、すぐに制御を返します。

コマンドの実行結果を確認するには指定されたオブジェクトプロパティをレクエストする関数を使用できますが、そのような関数はそのチャートのキューの最後に追加され、実行結果を待つため時間がかかることにご注意ください。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

オブジェクトの名称が変更された場合、2 つのイベントが同時に形成されます。これらのイベントはエキスパートアドバイザーまたは指標の OnChartEvent() 関数によって処理されます。

  • 古い名称のオブジェクトの削除イベント
  • 新しい名称のオブジェクトの作成イベント

ObjectGetDouble

この関数は、対応するオブジェクトプロパティの値を返します。オブジェクトプロパティは double 型でなければなりません。この関数には 2 つのバージョンがあります。

1. すぐにプロパティ値を返します。

double  ObjectGetDouble(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_DOUBLE    prop_id,          // プロパティ識別子
int                            prop_modifier=0    // 必要な場合、プロパティ修飾子
);

2. 関数実行の成功に応じて true または false を返します。成功した場合、プロパティ値は最後のパラメータで参照によって受け渡された変数に配置されます。

bool  ObjectGetDouble(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_DOUBLE    prop_id,          // プロパティ識別子
int                            prop_modifier,     // プロパティ修飾子
double&                        double_var        // プロパティ値を受け取る
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

prop_id

[in]  オブジェクトプロパティ識別子。値は ENUM_OBJECT_PROPERTY_DOUBLE 列挙のいずれかです。

prop_modifier

[in]  指定されたプロパティの修飾子。1 番目のバージョン例では、デフォルト修飾子の値が 0 に等しいです。ほとんどのプロパティは修飾子を必要としません。修飾子はフィボナッチツールのレベル数及びグラフィックオブジェクトのアンドリューズピッチフォークを示します。 レベルの番号付けは0から始まります。

double_var

[out]  リクエストされたプロパティの値を受け取ったdouble 型の変数

戻り値

最初の呼び出しバージョン例では、double 型の値

2 番目の呼び出しバージョン例では、指定されたプロパティが維持され、その値がdouble_var 変数に置かれている場合には true, それ以外の場合は false。エラーの詳細を読むには GetLastError() を呼びます。

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

ObjectGetInteger

この関数は、対応するオブジェクトプロパティの値を返します。オブジェクトプロパティは datetime、int、color、bool または char 型でなければなりません。この関数には 2 つのバージョンがあります。

1. すぐにプロパティ値を返します。

long  ObjectGetInteger(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_INTEGER    prop_id,          // プロパティ識別子
int                              prop_modifier=0   // 必要な場合、プロパティ修飾子
);

2. 関数実行の成功に応じて true または false を返します。成功した場合、プロパティ値は最後のパラメータで参照によって受け渡された変数に配置されます。

bool  ObjectGetInteger(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_INTEGER    prop_id,          // プロパティ識別子
int                              prop_modifier,     // プロパティ修飾子
long&                            long_var          // プロパティ値を受け取る
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

prop_id

[in]  オブジェクトプロパティ識別子。値は ENUM_OBJECT_PROPERTY_INTEGER 列挙のいずれかです。

prop_modifier

[in]  指定されたプロパティの修飾子。1 番目のバージョン例では、デフォルト修飾子の値が 0 に等しいです。ほとんどのプロパティは修飾子を必要としません。修飾子はフィボナッチツールのレベル数及びグラフィックオブジェクトのアンドリューズピッチフォークを示します。 レベルの番号付けは0から始まります。

long_var

[out]  リクエストされたプロパティの値を受け取る long 型の変数

戻り値

最初の呼び出しバージョン例では long 型の値

2 番目の呼び出しバージョン例では、指定されたプロパティが維持され、その値がlong_var 変数に置かれている場合には true, それ以外の場合は falseエラーの詳細を読むには GetLastError() を呼びます。

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

ObjectGetString

この関数は、対応するオブジェクトプロパティの値を返します。オブジェクトプロパティは string 型でなければなりません。この関数には 2 つのバージョンがあります。

1. すぐにプロパティ値を返します。

string  ObjectGetString(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_STRING    prop_id,          // プロパティ識別子
int                            prop_modifier=0   // 必要な場合、プロパティ修飾子
);

2. 関数実行の成功に応じて true または false を返します。成功した場合、プロパティ値は最後のパラメータで参照によって受け渡された変数に配置されます。

bool  ObjectGetString(
long                            chart_id,          // チャート識別子
string                          name,              // オブジェクト名
ENUM_OBJECT_PROPERTY_STRING    prop_id,          // プロパティ識別子
int                            prop_modifier,     // プロパティ修飾子
string&                        string_var        // プロパティ値を受け取る
);

パラメータ

chart_id

[in]  チャート識別子( 0 は現在のチャート)

name

[in]  オブジェクト名

prop_id

[in]  オブジェクトプロパティ識別子。値は ENUM_OBJECT_PROPERTY_STRING 列挙のいずれかです。

prop_modifier

[in]  指定されたプロパティの修飾子。1 番目のバージョン例では、デフォルト修飾子の値が 0 に等しいです。ほとんどのプロパティは修飾子を必要としません。修飾子はフィボナッチツールのレベル数及びグラフィックオブジェクトのアンドリューズピッチフォークを示します。 レベルの番号付けは0から始まります。

string_var

[out]  リクエストされたプロパティ値を受け取るstring 型の変数

戻り値

最初の呼び出しバージョン例では string 型の値

2 番目の呼び出しバージョン例では、指定されたプロパティが維持され、その値がstring_var 変数に置かれている場合には true, それ以外の場合は falseエラーの詳細を読むには GetLastError() を呼びます。

注意事項

この関数は同期呼び出しを使用します。つまり、この関数が呼び出される前にこのチャートのエンキューされたすべてのコマンドの実行が待機されるため、この関数は時間がかかることがあります。チャート上で多数のオブジェクトを操作する場合は、この特徴を考慮する必要があります。

オブジェクトの名称が変更された場合、2 つのイベントが同時に形成されます。これらのイベントはエキスパートアドバイザーまたは指標の OnChartEvent() 関数によって処理されます。

  • 古い名称のオブジェクトの削除イベント
  • 新しい名称のオブジェクトの作成イベント

TextSetFont

この関数は、描画メソッドを使用してテキストを表示するためのフォントを設定します。デフォルトとしてArial120(12 pt)が使用されます。

bool  TextSetFont(
const string name,            // フォント名またはディスクでのフォントへのパス
int           size,            // フォントサイズ
uint          flags,          // フラグの組み合わせ
int          orientation=0   // テキストの傾斜角度
);

パラメータ

name

[in]  システム内フォント名、またはディスク上のフォントやフォントファイルのパスを含むリソースの名称。

size

[in]  正負の値で設定出来るフォントサイズ。正の値の場合は、表示されるテキストのサイズは、オペレーティングシステムのフォントサイズの設定に依存しません。負の値の場合、少数第一の桁で設定され、テキストのサイズは、オペレーティングシステムの設定(「標準規模」や「大規模」)に依存します。モードの違いについての詳細は、下記の注意事項を参照してください。

flags

[in]  フォントスタイルを記述するフラグの組み合わせ

orientation

[in]  0.1度の測定単位での、X 軸に対するテキストの水平方向の傾き。例えば orientation=450 は45度に等しい傾きを表しています。

戻り値

現在のフォントが正常にインストールされている場合は true それ以外の場合は false を返します。可能なエラーコードは下記です。

  • ERR_INVALID_PARAMETER(4003) – name が NULL または “” (空の文字列)です。
  • ERR_INTERNAL_ERROR(4001) – オペレーティングシステムエラー(例えば、存在しないフォントを作成する試み)

注意事項

「::」 がフォント名に使用された場合、フォントは EX5 リソースからダウンロードされます。name フォント名が拡張子と指定された場合ファイルからダウンロードされ、パスが「」または「/」から始まる場合、ファイルが MQL5 ディレクトリと相対して検索されます。それ以外の場合は TextSetFont() 関数を呼び出した EX5 ファイルのパスを基準に検索されます。

フォントサイズは、正または負の値を使用して設定されます。この事実は、テキストサイズのオペレーティングシステムの設定(サイズスケール)への依存性を定義します。

  • サイズが正の数で指定された場合、このサイズは、使用可能なフォントから選ばれたシンボルのグリフの高さに一致するデバイスの物理的な測定単位(ピクセル)に変換されます。これは、TextOut() 関数で表示されたテキストとOBJ_LABEL (“Label”) で表示されたテキストがチャートで一緒に使用される場合には推奨されていません。
  • サイズが負の数で指定された場合、この数は 論理ポイントの10倍となります(例えば -350 は 35 論理ポイント). 取得された値は、デバイス(ピクセル)の物理的な測定単位に変換され、利用可能なフォントから選んだシンボルの高さの絶対値に相当します。画面のテキストのサイズを OBJ_LABEL オブジェクトの物と同じようにするには、オブジェクトプロパティで指定されたフォントサイズを -10 で掛けます。

フラグは、フォント幅を指定するフラグのいずれかの形式のフラグの組み合わせとして使用することが出来ます。フラグ名は下記に見られます。

フォントスタイルを指定するフラグ

フラグ

説明

FONT_ITALIC

イタリック

FONT_UNDERLINE

アンダーライン

FONT_STRIKEOUT

ストライクアウト

 

フォントの幅を指定するフラグ

フラグ

FW_DONTCARE

FW_THIN

FW_EXTRALIGHT

FW_ULTRALIGHT

FW_LIGHT

FW_NORMAL

FW_REGULAR

FW_MEDIUM

FW_SEMIBOLD

FW_DEMIBOLD

FW_BOLD

FW_EXTRABOLD

FW_ULTRABOLD

FW_HEAVY

FW_BLACK

参照

リソース、ResourceCreate()、ResourceSave()、TextOut()

TextOut

この関数は、カスタム配列(バッファ)にテキストを表示し、その操作の結果を返します。配列はグラフィックリソースの作成に意図されています。

bool  TextOut(
const string       text,          // 表示されたテキスト
int               x,            // X 座標
int                y,            // Y 座標
uint             anchor,        // アンカーの種類
uint             &data[],      // 出力バッファ
uint             width,        // ピクセル単位でのバッファ幅
uint             height,        // ピクセル単位でのバッファの高さ
uint             color,        // テキストの色
ENUM_COLOR_FORMAT color_format   // 出力する色のフォーマット
);

パラメータ

text

[in]  バッファに書かれる表示テキスト。一行のテキストのみが表示されます。

x

[in]  表示テキストのアンカーポイントの X 座標

y

[in]  表示テキストのアンカーポイントの Y 座標

anchor

[in]  表示テキストのアンカーポイントの位置の事前定義された 9 つの方法のうちの 1 つでの値。この値は、水平方向と垂直方向のテキスト整列の 2 つのフラグの組み合わせで設定されます。フラグ名は下の「注意事項」にリストされています。

data[]

[in]  テキストが表示されるバッファ。バッファはグラフィックリソースの作成に意図されています。

[in]  ピクセル単位でのバッファ幅

height

[in]  ピクセル単位でのバッファの高さ

color

[in]  テキストの色

color_format

[in]  色のフォーマットは ENUM_COLOR_FORMAT 列挙値から設定されます。

戻り値

成功の場合は true、それ以外の場合は false。

注意事項

anchor で指定されたアンカーポイントは、水平方向と垂直方向のテキスト整列の 2 つのフラグの組み合わせで指定されます。水平方向テキスト整列のフラグ

  • TA_LEFT – アンカーポイントが境界ボックスの左側に位置します。
  • TA_CENTER – アンカーポイントが境界ボックスの中心に位置します。
  • TA_RIGHT – アンカーポイントが境界ボックスの右側に位置します。

垂直方向テキスト整列のフラグ

  • TA_TOP – アンカーポイントが境界ボックスの上側に位置します。
  • TA_VCENTER – アンカーポイントが境界ボックスの中心に位置します。
  • TA_BOTTOM – アンカーポイントが境界ボックスの下側に位置します。

 

フラグや指定されたアンカーポイントの可能な組み合わせは画像に示されています。
 

テキスト文字列結合の 9 つの可能な方法

例:

//— 描画に使用されるキャンバスの幅と高さ
#define IMG_WIDTH  200
#define IMG_HEIGHT 200
//— スクリプトの起動時にパラメータのウィンドウを表示する
#property script_show_inputs
//— 色のフォーマットの設定を有効にする
input ENUM_COLOR_FORMAT clr_format=COLOR_FORMAT_XRGB_NOALPHA;
//— 描画配列(バッファ)
uint ExtImg[IMG_WIDTH*IMG_HEIGHT];
//+——————————————————————+
//| スクリプトプログラムを開始する関数                                          |
//+——————————————————————+
void OnStart()
{
//— 描画する OBJ_BITMAP_LABEL オブジェクトを作成する    
ObjectCreate(0,“CLOCK”,OBJ_BITMAP_LABEL,0,0,0);
//— CLOCK オブジェクトに書くためにグラフィックリソースの名称を指定する
ObjectSetString(0,“CLOCK”,OBJPROP_BMPFILE,“::IMG”);

//— 補助変数
double a;           // 矢印のコーナー
uint   nm=2700;     // 分のコーナー
uint   nh=2700*12;   // 時間のコーナー
uint   w,h;         // テキスト文字列のサイズを受け取る変数
int    x,y;         // テキスト文字列のアンカーポイントの現在の座標を算出するための変数
 
//— スクリプトが停止するまで、無限ループで時計の針を回転させる
while(!IsStopped())
{
//— 時計描画のバッファ配列をクリアする
ArrayFill(ExtImg,0,IMG_WIDTH*IMG_HEIGHT,0);
//— 時計面の描画数字のフォントを設定する
TextSetFont(“Arial”,-200,FW_EXTRABOLD,0);
//— 時計面を描画する
for(int i=1;i<=12;i++)
{
//— 時計面の現在の時間サイズを受け取る
TextGetSize(string(i),w,h);
//— 時計面の現在の時間サイズを受け取る
a=-((i*300)%3600*M_PI)/1800.0;
x=IMG_WIDTH/2-int(sin(a)*80+0.5+w/2);
y=IMG_HEIGHT/2-int(cos(a)*80+0.5+h/2);
//— 時計面の時間を ExtImg[] バッファに出力する
TextOut(string(i),x,y,TA_LEFT|TA_TOP,ExtImg,IMG_WIDTH,IMG_HEIGHT,0xFFFFFFFF,clr_format);
}
//— 分針を描画するためのフォントを指定する     
TextSetFont(“Arial”,-200,FW_EXTRABOLD,-int(nm%3600));
//— 分針のサイズを受け取る
TextGetSize(“—–>”,w,h);
//— 時計面の現在の分針のサイズを受け取る
a=-(nm%3600*M_PI)/1800.0;
x=IMG_WIDTH/2-int(sin(a)*h/2+0.5);
y=IMG_HEIGHT/2-int(cos(a)*h/2+0.5);
//— 時計面の分針を ExtImg[] バッファに出力する
TextOut(“—–>”,x,y,TA_LEFT|TA_TOP,ExtImg,IMG_WIDTH,IMG_HEIGHT,0xFFFFFFFF,clr_format);

//— 時針を描画するためのフォントを設定する      
TextSetFont(“Arial”,-200,FW_EXTRABOLD,-int(nh/12%3600));
TextGetSize(“==>”,w,h);
//— 時計面での時針の座標を計算する
a=-(nh/12%3600*M_PI)/1800.0;
x=IMG_WIDTH/2-int(sin(a)*h/2+0.5);
y=IMG_HEIGHT/2-int(cos(a)*h/2+0.5);
//— 時計面の時針を ExtImg[] バッファに出力する
の種類     TextOut(“==>”,x,y,TA_LEFT|TA_TOP,ExtImg,IMG_WIDTH,IMG_HEIGHT,0xFFFFFFFF,clr_format);

//— グラpヒックリソースを更新する
ResourceCreate(“::IMG”,ExtImg,IMG_WIDTH,IMG_HEIGHT,0,0,IMG_WIDTH,clr_format);
//— 強制的なチャート更新
ChartRedraw();

//— 時分のカウンタを増加する
nm+=60;
nh+=60;
//— フレーム間に短い休止を維持する
Sleep(10);
}
//— スクリプトの操作が終了した際に CLOCK オブジェクトを削除する
ObjectDelete(0,“CLOCK”);
//—
}

参照

リソース、ResourceCreate()、ResourceSave()、TextGetSize()、TextSetFont()

TextGetSize

この関数は現在のフォント設定での行の幅と高さを返します。

bool  TextGetSize(
const string       text,          // テキスト文字列
uint&             width,        // ピクセル単位でのバッファ幅
uint&             height        // ピクセル単位でのバッファの高さ
);

パラメータ

text

[in]  長さと幅が取得される文字列

[out]  幅を受け取る入力パラメータ

height

[out]  高さを受け取る入力パラメータ

戻り値

成功の場合は true、それ以外の場合は false。可能なエラーコードは下記です。

  • ERR_INTERNAL_ERROR(4001) – operating system error(オペレーティングシステムエラー)

参照

リソース、ResourceCreate()、ResourceSave()、TextSetFont()、TextOut()

Originally posted 2019-07-30 09:39:26.

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">