フラグは変数です。あるいはbool:false=empty, true=raised or int - そうすると、1つの数値の中に一度に多くのフラグが存在することになります。0-全て省略、1=1番を紛失、2=2番を紛失、3=1番と2番を紛失、4=3番を紛失、5=3番と1番を紛失、6=3番と2番を紛失、7=1、2、3番、8=4番を紛失・・・・。それはバイナリコードですね。どうやって調べるの?
#property script_show_inputsinputcolor testColor=clrBlue;// задайте цвет для тестирования//--- структура для представления цвета в RGBstruct RGB
{
uchar blue; // синяя составляющая цветаuchar green; // зеленая составляющая цветаuchar red; // красная составляющая цветаuchar empty; // этот байт не используетсяstring toString(); // функция для получения в виде строки
};
//--- функция для вывода цвета в виде строкиstring RGB::toString(void)
{
string out="("+(string)red+":"+(string)green+":"+(string)blue+")";
return out;
}
//--- структура для хранения встроенного типа color struct builtColor
{
color c;
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//--- переменная для хранения в RGB
RGB colorRGB;
//--- переменная для хранения типа color
builtColor test;
test.c=testColor;
//--- приведение двух структур путем копирования содержимого
colorRGB=test;
Print("color ",test.c," = ",colorRGB.toString());
//---
}
コンパイラは次のようなエラーを発生します。('=' - 不正な操作 use test.mq4 34 12 )
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL4 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...
ありがとうございました!)回答から、オブジェクトの種類ごとに別の関数を作る必要があると結論づけました。ファイルを読み込むmain関数がループしている間に、オブジェクトを構築 する関数のスタートを別に作れば何とかなるのではと思いました。Switchはどうですか?
たぶん、まだ突っ込みが足りないんだと思います。
最初の、すべてのグラフィックオブジェクトの構築は、特に問題や疑問は生じません。しかし、私は2つ目のものを誤解していたようです。どうやら、多くの種類のオブジェクトに対して1つのボタンで作業を整理するのではなく、1種類のオブジェクトに対して1つのボタンで作業を整理することが問題だったようです。その場合、オブジェクトのパラメータを持つ構造体と、オブジェクトの種類ごとに1つずつ、複数の配列を作ることになりますね。そして、これらの構造体配列を、それぞれ対応する型のボタンにバインドするのです。
そして、ボタンを押すと、対応するオブジェクトタイプが削除されます。そして、ボタンが離されると、構造体配列にあるパラメータによってオブジェクトが復元されます。
そのため、起動時に一度だけファイルを読み込む必要があります。
たぶん、まだ突っ込みが足りないんだと思います。
最初の、すべてのグラフィックオブジェクトの構築は、特に問題や疑問は生じません。しかし、私は2つ目のものを誤解していたようです。どうやら、多くの種類のオブジェクトに対して1つのボタンで作業を整理するのではなく、1種類のオブジェクトに対して1つのボタンで作業を整理することが問題だったようです。その場合、オブジェクトのパラメータを持つ構造体と、オブジェクトの種類ごとに1つずつ、複数の配列を作ることになりますね。そして、これらの構造体配列を、それぞれ対応する型のボタンにバインドするのです。
そして、ボタンを押すと、対応するオブジェクトタイプが削除されます。そして、ボタンが離されると、構造体配列にあるパラメータによってオブジェクトが復元されます。
そのため、起動時に一度だけ読み込む必要があります。
フラグは変数です。あるいはbool:false=empty, true=raised or int - そうすると、1つの数値の中に一度に多くのフラグが存在することになります。0-全て省略、1=1番を紛失、2=2番を紛失、3=1番と2番を紛失、4=3番を紛失、5=3番と1番を紛失、6=3番と2番を紛失、7=1、2、3番、8=4番を紛失・・・・。それはバイナリコードですね。どうやって調べるの?
STARIJさんが提案されたフラグを使った方法と、こちらの方法を試してみようと思います。 質問を少なくするようにします。)
旗は悪くないかもしれないが、的外れである
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MQL4に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。
WinProject さん 2018.01.26 18:17
こんばんは、またまたお世話になります。私のEAにはOnInitのメイン関数があり、ファイルを読み込んで、さまざまな条件に従って異なるグラフィックオブジェクトを即座に構築します。また、チャート上にはボタンがあり、クリックするとこれらのオブジェクト、例えばテキストラベルを削除する機能を操作することができます。ボタンを押すとテキストラベルが削除され、ボタンを離すと、すべてのオブジェクトを完全に構築する機能ではなく、テキストラベルのみを構築する機能を実現するには、どうしたらよいでしょうか?唯一 思いつくのは、 オブジェクトの種類ごとに、 ファイルを開いたり読んだりすることに関連するすべてのアクションを持つ メイン関数のアナログを別々に 作ることですが、何か賢い解決策を使いたいのですが、どれがどのようにメイン関数で、あるいはボタンの関数で、ということがわかりません。
MQL5で 現在時刻の値を取得する方法を教えてください。
MqlDateTime構造 体のオブジェクトを作成しましたが、何も表示されません。
MQL5で 現在時刻の値を取得する方法を教えてください。
MqlDateTime構造 体のオブジェクトを作成しましたが、何も表示されません。
構造体にはdate-timeを入れる必要がある。
TimeCurrent() を使う? どうにも理解できないんだけど。
TimeCurrent() を使うのか?
TimeToStruct()
あ、わかりました!うまくいきました!ありがとうございます。
https://docs.mql4.com/ru/basis/types/casting
最後の例は、RGB表現の色を文字列で 表したものです。"2つの構造体を中身をコピーして変換する"というのは、うまくいかないんです。
コンパイラは次のようなエラーを発生します。('=' - 不正な操作 use test.mq4 34 12 )
何か間違ってコピーしたのか、それともサンプルに誤りがあるのか?どうか、アドバイスをお願いします。