ライブラリ: EasyAndFastGUIグラフィックインターフェース作成ライブラリ - ページ 22 1...151617181920212223242526272829...45 新しいコメント Yevgen Drumachyk 2021.02.12 19:33 #211 同僚の皆さん、こんにちは! オブジェクト名を"CElementBase:: " に置き換えることで、ワーニングの数を18個から6個に減らすことができました。 そして、この6つのエラーは4つのタイプに減らすことができました。正しく囲むのを手伝ってください。 1.m_tabs.GetButtonPointer(m_selected_tab). "を "CElementBase:: "に正しく置き換えるには? //--- 線の色を定義する color clr=m_back_color; if(m_tabs.GetButtonPointer(m_selected_tab).IsLocked()) // これだ! clr=m_tabs.GetButtonPointer(m_selected_tab).BackColorLocked(); //--- 線を引く m_canvas.Line(x1,y1,x2,y2,::ColorToARGB(clr,m_alpha)); } 2.ここで、"el. "を "CElementBase:: "に置き換えると、コンパイルエラーが発生します。- IsAvailable - access to non-staticmember of function" というコンパイルエラーが発生します。 for(int e=0; e<elements_total; e++) { //--- 利用可能な項目のみをチェックする CElement *el=m_wnd[m_active_window_index].m_elements[e]; if(!el.IsVisible() || !el.IsAvailable() || el.IsLocked()) continue; //--- アイテムハンドラでのイベント処理 el.OnEvent(m_id,m_lparam,m_dparam,m_sparam); } 3. 同じ行で、"el.IsLocked()" を "CElementBase::IsLocked" に置き換えると、"IsLocked - access to non-static member of function" という エラーが発生します。 4. 最後に、"m_windows[0].IsLocked()" を置き換える正しい方法を教えてください。 //--- インターフェイスが作成されなかった場合は終了する。 if(windows_total<1) return; //--- いずれかのモードが有効な場合、ロックされたフォームのすべての要素のサイズを変更する。 if(m_windows[0].IsLocked() && (m_windows[0].AutoXResizeMode() || m_windows[0].AutoXResizeMode())) { このライブラリを使用するのは素晴らしいことですが、まずこれらの問題を解決する必要があります。 よろしくお願いします! Documentation on MQL5: Language Basics / Object-Oriented Programming / Static Members of a Class www.mql5.com Static Members of a Class - Object-Oriented Programming - Language Basics - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5 Edgar Akhmadeev 2021.02.13 08:36 #212 Yevgen Drumachyk:やあ、同僚たち!オブジェクト名を"CElementBase:: " に置き換えることで、ワーニングの数を18から6に減らすことができました。 el.CElementBase::IsLocked() ? Yevgen Drumachyk 2021.02.13 20:45 #213 Edgar Akhmadeev: el.CElementBase::IsLocked() ? Edgar Akhmadeev、どうもありがとう! うまくいきました!)) Yevgen Drumachyk 2021.02.21 09:55 #214 同僚の皆さん、こんにちは! このライブラリを使用して2つのウィンドウを作成する方法を教えてください。私は2つのウィンドウで構成されるExpert Advisorを書いています。 最初の取引パネルのウィンドウは作成済みで、問題なく動作しています: CWindow m_window; CreateWindow(m_window, "META TOOLS",1,1,175,175,200,false,false,true,true) + ボタンを追加: しかし CWindow m_watchlist_window; CreateWindow(m_watchlist_window, "ウォッチリスト",150,1,100,150,150,false,false,true,true,false) CreateButton(m_watchlist1_btn, "EURUSD",m_watchlist_window,0,245,25,60,30) すると、EURUSDボタンが空中に現れる。つまり、別のウィンドウは作成されない。なぜですか? このUIは次のコンテキストで作成される: class CProgram : public CWndCreate 次のコマンドでUIの作成を完了する。 CWndEvents::CompletedGUI() マルチウィンドウUIを作成できたかどうか教えてください。 2つの独立したウィンドウについて話しています。つまり、(設定のような)ダイアログウィンドウが 現れるようなものは適していません。両方のウィンドウが常に表示され、独立してクリックできる必要があります。なぜ別々のウィンドウなのですか?最初のウィンドウ(トレードパネル)は固定サイズだからです。二つ目のウォッチ・リストは、追加されるアイテムの数によってウィンドウの大きさが変わります。 Libraries: EasyAndFastGUI library for 有望なシグナルの自動選択 トレードシグナルの多通貨監視(パート2):アプリケーションのビジュアル部分の実装 Yevgen Drumachyk 2021.02.21 10:00 #215 こんにちは! このライブラリを使って複数の独立したウィンドウを作成できましたか?つまり、WindowCreate()メソッドを複数回呼び出して、同じEA内のチャート上にウィンドウを追加することができますか? 私は1つのウィンドウを正常に作成することができます。しかし、2つ目のウィンドウを作成しようとすると表示されません。 なぜでしょうか? あるいは、どのようにして追加のウィンドウ(ダイアログではない)を作成したのか、例を教えてください。 ありがとうございます! Oleksii Chepurnyi 2021.02.21 11:20 #216 Yevgen Drumachyk:このライブラリを使って2つのウィンドウを作る方法を教えてください。 できません。すべては1つのメイン・ウィンドウを中心に構築されている。私が自分のライブラリを書き始めた理由のひとつです。) Yevgen Drumachyk 2021.02.21 13:39 #217 Oleksii Chepurnyi:とんでもない。すべては1つのメインウィンドウを中心に構築されている。私が自分のライブラリを書き始めた理由の1つです ) ありがとう、Oleksii Chepurnyi!結局、このライブラリなしでやっていきたい。とてもよくできている。 他のバージョンは?もしかしたら、誰かがこの問題を回避して、1つ以上のウィンドウを作ることに成功したのかも? ライブラリのコードを見ればわかるが、新しく作成されたウィンドウは「要素の共通配列」に追加される。ということは、ウィンドウは1つだけではない......?ライブラリのこのコードに注目してください: //+------------------------------------------------------------------+ //| インターフェイス要素データベースにウィンドウ・ポインタを追加する。 //+------------------------------------------------------------------+ void CWndContainer::AddWindow(CWindow &object) { int windows_total=::ArraySize(m_windows); //--- ウィンドウがまだない場合は、要素カウンターをゼロにリセットする。 if(windows_total<1) { m_counter_element_id=0; ::Comment("Loading. Please wait..."); } //--- windows配列へのポインタを追加する。 int new_size=windows_total+1; ::ArrayResize(m_wnd,new_size); ::ArrayResize(m_windows,new_size); m_windows[windows_total]=::GetPointer(object); //--- 要素の共通配列へのポインタを追加する。 int last_index=ResizeArray(m_wnd[windows_total].m_elements); m_wnd[windows_total].m_elements[last_index]=::GetPointer(object); //--- ウィンドウ・ボタンのポインタをデータベースに追加する。 AddWindowElements(windows_total,object); //--- idを設定し、最後の要素のidを記憶する。 m_windows[windows_total].Id(m_counter_element_id); m_windows[windows_total].LastId(m_counter_element_id); //--- 要素識別子のカウンターを増やす m_counter_element_id++; } Sergey Likho 2021.02.21 18:46 #218 2つのウィンドウを同時に起動してアクティブにするには、ライブラリを編集する必要がある。単純で膨大な作業ではない。もしそれが必要なら、フリーランスに連絡してほしい。 Cid Ougaske 2021.03.26 17:53 #219 これまでで最高だ。おめでとう。 rafaeldallatorr 2021.04.07 05:19 #220 CreateSimpleButtonに制限はありますか?ウィンドウに6つ以上のシンプルボタンを置くことができません。グラフィカルインターフェイス x(mql4)のコードを使用しています。Anatoli Kazharski Best, RDTに感謝しています。 メタトレーダー4自体にエラーがあることがわかりました。変更を加えてグラフを閉じ、新しいグラフを開いてEAを入れると、変更が正しく適用されることに気づきました。Anatoliさん、非常に優れた完全な仕事をありがとうございました。最高、RDT Anatoli Kazharski 2019.02.17www.mql5.com Perfil do Trader 1...151617181920212223242526272829...45 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
同僚の皆さん、こんにちは!
オブジェクト名を"CElementBase:: " に置き換えることで、ワーニングの数を18個から6個に減らすことができました。
そして、この6つのエラーは4つのタイプに減らすことができました。正しく囲むのを手伝ってください。
1.m_tabs.GetButtonPointer(m_selected_tab). "を "CElementBase:: "に正しく置き換えるには?
2.ここで、"el. "を "CElementBase:: "に置き換えると、コンパイルエラーが発生します。- IsAvailable - access to non-staticmember of function" というコンパイルエラーが発生します。
3. 同じ行で、"el.IsLocked()" を "CElementBase::IsLocked" に置き換えると、"IsLocked - access to non-static member of function" という エラーが発生します。
4. 最後に、"m_windows[0].IsLocked()" を置き換える正しい方法を教えてください。
このライブラリを使用するのは素晴らしいことですが、まずこれらの問題を解決する必要があります。
よろしくお願いします!
やあ、同僚たち!
オブジェクト名を"CElementBase:: " に置き換えることで、ワーニングの数を18から6に減らすことができました。
el.CElementBase::IsLocked() ?
Edgar Akhmadeev、どうもありがとう!
うまくいきました!))
同僚の皆さん、こんにちは!
このライブラリを使用して2つのウィンドウを作成する方法を教えてください。私は2つのウィンドウで構成されるExpert Advisorを書いています。
最初の取引パネルのウィンドウは作成済みで、問題なく動作しています:
CWindow m_window;
CreateWindow(m_window, "META TOOLS",1,1,175,175,200,false,false,true,true) + ボタンを追加:
しかし
CWindow m_watchlist_window;
CreateWindow(m_watchlist_window, "ウォッチリスト",150,1,100,150,150,false,false,true,true,false)
CreateButton(m_watchlist1_btn, "EURUSD",m_watchlist_window,0,245,25,60,30)
すると、EURUSDボタンが空中に現れる。つまり、別のウィンドウは作成されない。なぜですか?
このUIは次のコンテキストで作成される: class CProgram : public CWndCreate
次のコマンドでUIの作成を完了する。
CWndEvents::CompletedGUI()
マルチウィンドウUIを作成できたかどうか教えてください。
2つの独立したウィンドウについて話しています。つまり、(設定のような)ダイアログウィンドウが 現れるようなものは適していません。両方のウィンドウが常に表示され、独立してクリックできる必要があります。なぜ別々のウィンドウなのですか?最初のウィンドウ(トレードパネル)は固定サイズだからです。二つ目のウォッチ・リストは、追加されるアイテムの数によってウィンドウの大きさが変わります。
こんにちは!
このライブラリを使って複数の独立したウィンドウを作成できましたか?つまり、WindowCreate()メソッドを複数回呼び出して、同じEA内のチャート上にウィンドウを追加することができますか?
私は1つのウィンドウを正常に作成することができます。しかし、2つ目のウィンドウを作成しようとすると表示されません。
なぜでしょうか?
あるいは、どのようにして追加のウィンドウ(ダイアログではない)を作成したのか、例を教えてください。
ありがとうございます!
このライブラリを使って2つのウィンドウを作る方法を教えてください。
できません。すべては1つのメイン・ウィンドウを中心に構築されている。私が自分のライブラリを書き始めた理由のひとつです。)
とんでもない。すべては1つのメインウィンドウを中心に構築されている。私が自分のライブラリを書き始めた理由の1つです )
ありがとう、Oleksii Chepurnyi!結局、このライブラリなしでやっていきたい。とてもよくできている。
他のバージョンは?もしかしたら、誰かがこの問題を回避して、1つ以上のウィンドウを作ることに成功したのかも?
ライブラリのコードを見ればわかるが、新しく作成されたウィンドウは「要素の共通配列」に追加される。ということは、ウィンドウは1つだけではない......?ライブラリのこのコードに注目してください:
CreateSimpleButtonに制限はありますか?ウィンドウに6つ以上のシンプルボタンを置くことができません。グラフィカルインターフェイス x(mql4)のコードを使用しています。Anatoli Kazharski Best, RDTに感謝しています。
メタトレーダー4自体にエラーがあることがわかりました。変更を加えてグラフを閉じ、新しいグラフを開いてEAを入れると、変更が正しく適用されることに気づきました。Anatoliさん、非常に優れた完全な仕事をありがとうございました。最高、RDT