初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1174 1...116711681169117011711172117311741175117611771178117911801181...1504 新しいコメント User_mt5 2020.01.13 14:53 #11731 Alexey Viktorov: 配列の2次元目以降をダイナミックにすることはできません。したがって,例えば,int Mas[][7] のように配列が宣言されている場合,MyFun(int &Mas[][7]) で取り込まなければなりません. はい、そうです。 ありがとうございます。そのための頭脳がなかったのです。 Kolya32 2020.01.14 12:26 #11732 プログラマーの皆さん、こんにちは。もう一度、お願いします。標準的なインジケータがあり、そこから1つの値を取得したい。インジケータを接続し、その値の配列をバッファにコピーしました double buf_atr[] ログにプリントされたArrayPrint(buf_atr) はこれらの値を表示します。 0.00032 0.00037 0.00039 0.00039 0.00041 0.00039 0.00037 0.00036 0.00034 0.00035 0.00035 0.00035 0.00034 0.00030 どのように私は値0.00030を持っているMASSIVEキーに適用するのですか? それは、この値は、現在のキャンドル0にないことが判明し、以前はすでに形成されている1 動作はしているようですが、セルの配列にアクセスしてさらに作業する方法がわかりません;( input int InpPeriod=14; // period int handleIndicator; //указатель на индикатор int OnInit() { handleIndicator = iCustom(NULL,0,"Examples\\INDICATOR",InpPeriod); return(INIT_SUCCEEDED); } void OnTick() { int buf_size = 14; double buf_atr[]; CopyBuffer(handleIndicator,0,0,buf_size,buf_atr); ArrayPrint(buf_atr); } Vitaly Muzichenko 2020.01.14 13:30 #11733 Kolya32: プログラマーの皆さん、こんにちは。もう一度、お願いします。標準的なインジケータがあり、そこから1つの値を取得したい。インジケータを接続し、その値の配列をバッファにコピーしました double buf_atr[] ログにプリントされた ArrayPrint(buf_atr) はこれらの値を表示します。 0.00032 0.00037 0.00039 0.00039 0.00041 0.00039 0.00037 0.00036 0.00034 0.00035 0.00035 0.00035 0.00034 0.00030 どのように私は値0.00030を持っているMASSIVEキーに適用するのですか? それは、この値は、現在のキャンドル0と前が既に形成されていないことが判明している1 動作はしているようですが、セルの配列にアクセスしてさらに作業する方法がわかりません;( void OnTick() { int buf_size = 14; double buf_atr[]; CopyBuffer(handleIndicator,0,0,buf_size,buf_atr); Print( buf_atr[buf_size-1] ); // Массив начинается с нуля ArrayPrint(buf_atr); } Kolya32 2020.01.14 13:59 #11734 Vitaly Muzichenko: void OnTick() { int buf_size = 14; double buf_atr[]; CopyBuffer(handleIndicator,0,0,buf_size,buf_atr); Print( buf_atr[buf_size-1] ); // Массив начинается с нуля ArrayPrint(buf_atr); } 効いたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁbuf_atr[buf_size-1] I HAVE Tried EVERYTHING に回す必要がある。Vitaly Muzichenko さん、ありがとう ございました。 BillionerClub 2020.01.16 10:12 #11735 mqlのスタイリングは配列参照が必須ですか? ( double &value[],// Buffer of values double& clr[], // Color buffer const bool asSeries, // Numbering flag as in time series const string label, // Series name const color& colors[], // Line colors ) Petr Vorob'ev 2020.01.16 12:49 #11736 CAppDialogの 子孫であるCAppDialogPTR クラスを作成しました - m_background, m_caption を適切にオーバーライドする方法を教えてください ...をCDialogクラスからアクセスすることはできますか? #property strict #include <Controls\Dialog.mqh> class CAppDialogPTR : public CAppDialog { private: int m_deinit_reason; public: CAppDialogPTR(void){}; ~CAppDialogPTR(void){}; virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); }; bool CAppDialogPTR::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { m_deinit_reason=WRONG_VALUE; bool res = CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2); return(res); }ダイアログ.mqh.*** class CDialog : public CWndContainer { private: //--- dependent controls CPanel m_white_border; // the "white border" object CPanel m_background; // the background object CEdit m_caption; // the window title object CBmpButton m_button_close; // the "Close" button object CWndClient m_client_area; // the client area object *** Vasiliy Sokolov 2020.01.16 13:44 #11737 Peter Vorobyev:CAppDialogの 子孫であるCAppDialogPTR クラスを作成しました - m_background, m_caption を適切にオーバーライドする方法を教えてください ... をCDialogクラスからアクセスすることはできますか? ダイアログ.mqh. 無理でしょう。これらのオブジェクトは、private キーワードで示されるように、あなたのクラスで直接変更されないようにロックされています。 直接働きかけることはできません。これらのフィールドを操作するCDialog クラスのメソッドを使用します。 Petr Vorob'ev 2020.01.16 14:06 #11738 Vasiliy Sokolov: 無理でしょう。これらのオブジェクトは、private キーワードで示されるように、あなたのクラスで直接変更されないようにロックされています。 直接働きかけることはできません。これらのフィールドを操作するCDialog クラスのメソッドを使用します。 仮定してみましょう。 作成されたCAppDialogPTR クラスのインスタンスはコントロールを持ちます(CWndContainerクラス-> CWnd* Control(const int ind) const { return(dynamic_cast<CWnd *>(m_controls.At(ind)); }) から、m_background, m_caption にアクセスすることができる。 1) 作成したオブジェクトにアクセスする(メモリを参照する)ための構文は? "CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2);" Vasiliy Sokolov 2020.01.16 16:04 #11739 Peter Vorobyev:仮に 作成されたCAppDialogPTR クラスのインスタンスはコントロールを持ちます(CWndContainerクラス-> CWnd* Control(const int ind) const { return(dynamic_cast<CWnd *>(m_controls.At(ind)); }.) を通して,m_background, m_caption にアクセスすることができる.1) 作成したオブジェクトにアクセスする(メモリを参照する)ための構文は? m_controls コレクションも閉じているので、どのインデックスがどの特定のコントロールに対応するのかが分からないため、コントレイルにアドレス指定でアクセスすることはまだできません。CDialogは、それが構成する要素へのアクセスをロックしますが、その主要なプロパティを一貫して管理できるようにする、というものです。例えば、m_captionに直接アクセスすることはできませんが、Caption(const string text)メソッドを使用してそのテキストを変更することができます。 欲しいのは、要するにハックなんです。どんなMQツールでも、原則的にはあれこれハックしたくなるものですから、あなただけではありません。おそらく最も簡単な方法は、ライブラリを別のディレクトリにコピーして、プライベートセクションをprotectedに移動することです。これは粗雑で間抜けだが、うまくいくだろう。他の選択肢はありえない - ハードコードが多すぎる。 Petr Vorob'ev 2020.01.16 17:06 #11740 Vasiliy Sokolov: m_controls コレクションも閉じているので、どのインデックスがどのコントロールに対応するのかが分からないため、いずれにせよカウンターパーツにアクセスすることはできません。CDialogは、それが構成する要素へのアクセスをロックしますが、その主要なプロパティを一貫して管理できるようにする、というものです。例えば、m_captionに直接アクセスすることはできませんが、Caption(const string text)メソッドを使用してそのテキストを変更することができます。 欲しいのは、要するにハックなんです。どんなMQツールでも、原則的にはあれこれハックしたくなるものですから、あなただけではありません。おそらく最も簡単な方法は、ライブラリを別のディレクトリにコピーして、プライベートセクションをprotectedに移動することです。 これは粗雑で間抜けだが、うまくいくだろう。他の選択肢は、コードが固いのでうまくいきそうにありません。 MQのソースコードを修正し、メソッドをpublicに引き上げることは、明らかに我々の手法ではありません :) 。 しかし、グローバル変数 panelの宣言後にCaptionのプロパティを参照することができます。 CAppDialogPTR panel; int total=panel.ControlsTotal(); for(int i=0;i<total;i++) { CWnd *_control=panel.Control(i); string _control_name=_control.Name(); if(StringFind(_control_name,"Caption")>0) { CEdit *_caption=(CEdit*)_control; _caption.Text("test"; _caption.Color(clrRed); ChartRedraw(); break; } } しかし、見栄えが悪いだけでなく、CAppDialogPTR クラスの背後にあるこのコード。 CAppDialogPTRクラスの内部で同じ ことをするにはどうしたらよいでしょうか?。 1...116711681169117011711172117311741175117611771178117911801181...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
配列の2次元目以降をダイナミックにすることはできません。したがって,例えば,int Mas[][7] のように配列が宣言されている場合,MyFun(int &Mas[][7]) で取り込まなければなりません.
ありがとうございます。そのための頭脳がなかったのです。
プログラマーの皆さん、こんにちは。もう一度、お願いします。標準的なインジケータがあり、そこから1つの値を取得したい。インジケータを接続し、その値の配列をバッファにコピーしました double buf_atr[] ログにプリントされたArrayPrint(buf_atr) はこれらの値を表示します。
0.00032 0.00037 0.00039 0.00039 0.00041 0.00039 0.00037 0.00036 0.00034 0.00035 0.00035 0.00035 0.00034 0.00030
どのように私は値0.00030を持っているMASSIVEキーに適用するのですか? それは、この値は、現在のキャンドル0にないことが判明し、以前はすでに形成されている1
動作はしているようですが、セルの配列にアクセスしてさらに作業する方法がわかりません;(
プログラマーの皆さん、こんにちは。もう一度、お願いします。標準的なインジケータがあり、そこから1つの値を取得したい。インジケータを接続し、その値の配列をバッファにコピーしました double buf_atr[] ログにプリントされた ArrayPrint(buf_atr) はこれらの値を表示します。
0.00032 0.00037 0.00039 0.00039 0.00041 0.00039 0.00037 0.00036 0.00034 0.00035 0.00035 0.00035 0.00034 0.00030
どのように私は値0.00030を持っているMASSIVEキーに適用するのですか? それは、この値は、現在のキャンドル0と前が既に形成されていないことが判明している1
動作はしているようですが、セルの配列にアクセスしてさらに作業する方法がわかりません;(
効いたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁbuf_atr[buf_size-1] I HAVE Tried EVERYTHING に回す必要がある。Vitaly Muzichenko さん、ありがとう ございました。
mqlのスタイリングは配列参照が必須ですか?
ダイアログ.mqh.
CAppDialogの 子孫であるCAppDialogPTR クラスを作成しました - m_background, m_caption を適切にオーバーライドする方法を教えてください ... をCDialogクラスからアクセスすることはできますか?
ダイアログ.mqh.
無理でしょう。これらのオブジェクトは、private キーワードで示されるように、あなたのクラスで直接変更されないようにロックされています。 直接働きかけることはできません。これらのフィールドを操作するCDialog クラスのメソッドを使用します。
無理でしょう。これらのオブジェクトは、private キーワードで示されるように、あなたのクラスで直接変更されないようにロックされています。 直接働きかけることはできません。これらのフィールドを操作するCDialog クラスのメソッドを使用します。
仮定してみましょう。
作成されたCAppDialogPTR クラスのインスタンスはコントロールを持ちます(CWndContainerクラス-> CWnd* Control(const int ind) const { return(dynamic_cast<CWnd *>(m_controls.At(ind)); }) から、m_background, m_caption にアクセスすることができる。
1) 作成したオブジェクトにアクセスする(メモリを参照する)ための構文は?
"CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2);"仮に
作成されたCAppDialogPTR クラスのインスタンスはコントロールを持ちます(CWndContainerクラス-> CWnd* Control(const int ind) const { return(dynamic_cast<CWnd *>(m_controls.At(ind)); }.) を通して,m_background, m_caption にアクセスすることができる.
1) 作成したオブジェクトにアクセスする(メモリを参照する)ための構文は?
m_controls コレクションも閉じているので、どのインデックスがどの特定のコントロールに対応するのかが分からないため、コントレイルにアドレス指定でアクセスすることはまだできません。CDialogは、それが構成する要素へのアクセスをロックしますが、その主要なプロパティを一貫して管理できるようにする、というものです。例えば、m_captionに直接アクセスすることはできませんが、Caption(const string text)メソッドを使用してそのテキストを変更することができます。
欲しいのは、要するにハックなんです。どんなMQツールでも、原則的にはあれこれハックしたくなるものですから、あなただけではありません。おそらく最も簡単な方法は、ライブラリを別のディレクトリにコピーして、プライベートセクションをprotectedに移動することです。これは粗雑で間抜けだが、うまくいくだろう。他の選択肢はありえない - ハードコードが多すぎる。
m_controls コレクションも閉じているので、どのインデックスがどのコントロールに対応するのかが分からないため、いずれにせよカウンターパーツにアクセスすることはできません。CDialogは、それが構成する要素へのアクセスをロックしますが、その主要なプロパティを一貫して管理できるようにする、というものです。例えば、m_captionに直接アクセスすることはできませんが、Caption(const string text)メソッドを使用してそのテキストを変更することができます。
欲しいのは、要するにハックなんです。どんなMQツールでも、原則的にはあれこれハックしたくなるものですから、あなただけではありません。おそらく最も簡単な方法は、ライブラリを別のディレクトリにコピーして、プライベートセクションをprotectedに移動することです。 これは粗雑で間抜けだが、うまくいくだろう。他の選択肢は、コードが固いのでうまくいきそうにありません。
MQのソースコードを修正し、メソッドをpublicに引き上げることは、明らかに我々の手法ではありません :) 。
しかし、グローバル変数 panelの宣言後にCaptionのプロパティを参照することができます。
しかし、見栄えが悪いだけでなく、CAppDialogPTR クラスの背後にあるこのコード。 CAppDialogPTRクラスの内部で同じ ことをするにはどうしたらよいでしょうか?
。