記事"グラフィカルインターフェイスX:マルチラインテキストボックスでのテキスト選択(ビルド13)"についてのディスカッション - ページ 12 1...5678910111213141516 新しいコメント Konstantin 2017.05.04 08:30 #111 タブを動的に追加/削除したり、タブの配列にチャートを追加/削除したりするタスクを実行中に、CTabs クラスでタブの名前を取得できないという問題に遭遇した。そこで、このクラスにタブ名を取得するメソッドを追加することを提案する: //---指定されたインデックスにテキスト(タブ名)を設定する。 (2) получает текст (имя вкладки) по указанному индексу void Text(const uint index,const string text); // このメソッドは string Text(const uint index) { return m_tab[index].text; } // それだけでは不十分だ このメソッドを追加する必要があるのは、足りないメソッドを補うためにCTabs クラスを継承しても、m_tab[] オブジェクトがクラスの保護領域にあるため、オーバーロードされた Text メソッドを 実装することができないからである。また、自分の都合の良いようにクラスを編集することは、OOPの原則に反する。 Anatoli Kazharski 2017.05.04 10:01 #112 Konstantin:... あなたが以前の記事で書いたことをすべて実行します。 Konstantin 2017.05.04 10:39 #113 EasyAndFastGUI/MQL5/Images/EasyAndFastGUI/Icons/bmp16 ライブラリに画像を追加します。二本足」のアービトラージャーのために、私だけでなく役に立つでしょう )) ファイル: EasyAndFastGUI.zip 2 kb Pavel Kolchin 2017.05.08 20:41 #114 Anatoli Kazharski: CWndEvents::ResetWindow() メソッドを使って、ディールの矢印がパネルの上にぶら下がらないようにしてください。 どこに挿入しますか? Anatoli Kazharski 2017.05.08 20:47 #115 Pavel Kolchin: どこに置く?OnTrade()を試してみて ください。 Pavel Kolchin 2017.05.08 21:15 #116 Anatoli Kazharski: OnTrade()を試して ください。 できません、失敗します。メニュー・ファイルにはそのようなイベントはありませんが、メイン・ファイルに挿入すると失敗します。 Anatoli Kazharski 2017.05.08 21:40 #117 Pavel Kolchin: できません、失敗しますメニュー・ファイルにはそのようなイベントはありませんが、メイン・ファイルに貼り付けると失敗します。カスタム・アプリケーション・クラスにCProgram::OnTradeEvent()メソッドを作成する必要があります。そして、メイン・ファイルのOnTrade() 関数の中で呼び出す必要があります://+------------------------------------------------------------------+ //| トレード機能| //+------------------------------------------------------------------+ void OnTrade(void) { program.OnTradeEvent(); }//---例えば、CProgram::OnTradeEvent()メソッドの内容は以下のようになります://+------------------------------------------------------------------+ //| 取引イベント| //+------------------------------------------------------------------+ void CProgram::OnTradeEvent(void) { //--- すべてのチャートにトレードイベントを送信する。 m_events.SendEventToAllCharts(0,ON_TRADE_EVENT,0,0.0,m_program_name); //--- 最後の位置のトランザクションを設定する if(m_show_deals.CheckButtonState()) if(m_vdeals.ShowDealsLastPosition()) ResetWindow(); //--- 損切り距離の確認 if(m_trailing_stop.CheckButtonState()) m_ctrade.CheckStopLossSize(::Symbol()); //--- 貿易業務のための変数のゼロ化 m_ctrade.ZeroCalcPositionVariables(); //--- 残高配列の初期化とチャート上の系列の更新。 InitBalanceArray(); m_line_chart.SeriesUpdate(0,m_balance_data,"Balance",clrCornflowerBlue); } Pavel Kolchin 2017.05.08 22:05 #118 Anatoli Kazharski: もう少し上に加えるpublic: //--- 貿易 void OnTradeEvent(void); すべてがうまくいく ) Konstantin 2017.05.10 04:51 #119 要素_2、例えばテーブルを、要素_1、例えば同じテーブルの下端にバインドする方法がわかりません。その結果、グラフのサイズが変わると、要素_1の下側の境界が移動し、要素_2の上側の境界が その後に移動する必要があります。ライブラリにはAutoYResizeMode メソッドとAutoYResizeBottomOffset メソッドがありますが、上境界のずれを実装する方法がわかりません。 Anatoli Kazharski 2017.05.10 11:07 #120 Konstantin: 要素_2、例えばテーブルを、要素_1、例えば同じテーブルの下端にバインドする方法がわかりません。その結果、グラフのサイズが変わると、要素_1の下側の境界が移動し、要素_2の上側の境界が その後に移動する必要があります。ライブラリにはAutoYResizeMode メソッドとAutoYResizeBottomOffset メソッドがありますが、上境界のずれをどのように実装するのかがわかりません。要素をバインドするメソッドもある: //--- 要素をウィンドウの(1)右端と(2)下端にバインドするモード(get/set) bool AnchorRightWindowSide(void) const { return(m_anchor_right_window_side); } void AnchorRightWindowSide(const bool flag) { m_anchor_right_window_side=flag; } bool AnchorBottomWindowSide(void) const { return(m_anchor_bottom_window_side); } void AnchorBottomWindowSide(const bool flag) { m_anchor_bottom_window_side=flag; }//---これらのプロパティと組み合わせて問題を解決してみてください。 1...5678910111213141516 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
タブを動的に追加/削除したり、タブの配列にチャートを追加/削除したりするタスクを実行中に、CTabs クラスでタブの名前を取得できないという問題に遭遇した。そこで、このクラスにタブ名を取得するメソッドを追加することを提案する:
このメソッドを追加する必要があるのは、足りないメソッドを補うためにCTabs クラスを継承しても、m_tab[] オブジェクトがクラスの保護領域にあるため、オーバーロードされた Text メソッドを 実装することができないからである。また、自分の都合の良いようにクラスを編集することは、OOPの原則に反する。...
CWndEvents::ResetWindow() メソッドを使って、ディールの矢印がパネルの上にぶら下がらないようにしてください。
どこに置く?
OnTrade()を試して ください。
できません、失敗します。
メニュー・ファイルにはそのようなイベントはありませんが、メイン・ファイルに挿入すると失敗します。
できません、失敗します
メニュー・ファイルにはそのようなイベントはありませんが、メイン・ファイルに貼り付けると失敗します。
カスタム・アプリケーション・クラスにCProgram::OnTradeEvent()メソッドを作成する必要があります。
そして、メイン・ファイルのOnTrade() 関数の中で呼び出す必要があります:
//---
例えば、CProgram::OnTradeEvent()メソッドの内容は以下のようになります:
要素_2、例えばテーブルを、要素_1、例えば同じテーブルの下端にバインドする方法がわかりません。その結果、グラフのサイズが変わると、要素_1の下側の境界が移動し、要素_2の上側の境界が その後に移動する必要があります。ライブラリにはAutoYResizeMode メソッドとAutoYResizeBottomOffset メソッドがありますが、上境界のずれをどのように実装するのかがわかりません。
要素をバインドするメソッドもある:
//---
これらのプロパティと組み合わせて問題を解決してみてください。