記事"グラフィカルインタフェースIII:シンプルボタンと多機能ボタンのグループ(チャプター 2)"についてのディスカッション

 

新しい記事 グラフィカルインタフェースIII:シンプルボタンと多機能ボタンのグループ(チャプター 2) はパブリッシュされました:

シリーズの最初の章は、シンプルボタンと多機能ボタンについてでした。2番目の記事は、アプリケーション内でユーザーがセット(グループ)のうちオプションのいずれかを選択することができる際の要素の作成を可能にする相互接続されたボタンのグループに専念します。

ファイルをコンパイルしてプログラムをチャートに読み込みます。開発の現段階では、以下のスクリーンショットに示されたような結果が得られるはずです。

図4。ラジオボタンコントロールのテスト

図4。ラジオボタンコントロールのテスト

ラジオボタンコントロールのグループを作成するためのクラスの開発がこれで終了です。ファイルの完全なバージョンは本稿添付のファイルでダウンロードできます。

作者: Anatoli Kazharski

 
SplitButton.mqh ファイルをコンパイルすると、エラー "'return' - cannot convert from constpointer to nononst pointer SplitButton.mqh 90 65" が発生する。

 
Alexander:
SplitButton.mqhファイルをコンパイルすると、エラー"'return' - cannot convert from const pointer to nononst pointer SplitButton.mqh 90 65 "が表示されます。

そう、このエラーは前回のターミナル・アップデートの 後に発生した。ゲーム」のルールが少し変わったのだ。const 指定子を削除するだけで修正できます。

エラーのある行に行き、この行を置き換えてください:

CContextMenu     *GetContextMenuPointer(void)        const { return(::GetPointer(m_drop_menu)); }

この行に置き換えてください:

CContextMenu     *GetContextMenuPointer(void)              { return(::GetPointer(m_drop_menu)); }

//---

このエラーが発生するすべてのファイルで、同様の修正を行う必要がある。次回の連載では、このエラーを修正します。

ご投稿ありがとうございました。

 

素晴らしい仕事だ!


しかし、MT4(!)でパネルをインジケータとして使用しようとすると、「アイコンボタン」をクリックするたびに、
::Print(__FUNCTION__," > id: ",id,"; lparam: ",lparam,"; dparam: ",dparam,"; sparam: ",sparam) が2回出力されます;

そのため、インクリメントなどのすべてのクリックアクションが2回実行されます :(
これを修正する方法はありますか?

追伸:不思議なことに、MT5ではすべて正常に動作します。MT4では、インジケーターとして使用するとこの問題が発生します。エキスパートとしては問題なく動作します。

 
marquez:

...



追伸:不思議なことに、MT5ではすべて正常に動作します。MT4ではインジケーターとして使用する場合にこの問題が発生します。エキスパートとしては問題なく動作します。

ありがとうございます。このエラーはサービスデスクで説明されています。ライブラリの最初のバージョンが公開された後に修正します。25の記事があります。
 

こんにちは、


私はクイック&ダーティな解決策を実行しました。私の方法は、まずOnEventで左ボタンが押さ れたかどうかを個別にチェックし、もしtrueがセットされていればヘルパーにtrueを書き込むというものです。その後、通常のif文をヘルパー==trueで拡張し、ifの中で設定するとヘルパーがリセットされます。ほぼ完璧に動作する。速いクリックについては言及されていないケースもあるが、二重の結果を得ることを除けば、遅いクリックの方がいい :)

ところで: 誰かがあなたの現在のライブラリーをすべて英語にアップデートしてくれるとうれしい。あなたの最新のもの、例えば記事05などはロシア語だけです。

 

こんにちは、



質問があります、

アイコンの周りの黒い部分を透明にする方法を教えてください。

ありがとうございます。

 

こんにちは。

記事3からファイルをダウンロードしました。

コンパイルしたところ以下のエラーが出た。

CContextMenu *GetContextMenuPointer(void) const { return(::GetPointer(m_drop_menu));

ファイル = splitButton.mqh.

どなたか修正方法をご存じですか?


私は単純なボタンを 作成しようとしています。

感謝

 
Kristina Suh 単純なButtonを 作ろうとしています。

ありがとうございます。

const "を削除すればOK

CContextMenu *GetContextMenuPointer(void) { return(::GetPointer(m_drop_menu))