class CMyButton : public CButton
{
private:
CButton *mybtn;
public:
CMyButton(void){};
~CMyButton(void){};
bool isPrevState; // состояние кнопки на предыд.тике, true - была нажата void setButton(); // создаем кнопкуvoid setProp(); // задаем в ходе программы свойства
};
void CMyButton::setButton(void)
{
mybtn = new CButton;
mybtn.Create(....................);
// как в этой функции создать кнопку? Я не могу вызвать метод Create()
別件で一言。CButtonから子クラスCMyButtonを作れば、ボタンを作成した後、クラスの外でそのプロパティを変更することができます。以下はOnInit()で行われます。
しかし、子クラスの中に追加のフィールドを作り、CButtonクラスの組み込みプロパティを新しい関数で使用したい場合、どのようにすれば正しく行えるのでしょうか?
CButtonクラスでは、クラスメンバm_buttonがprivateセクションで宣言されています。
親クラスのプライベートセクションに入れない。
たぶん、単純明快に、CButtonクラスでグラフィカル・オブジェクトの名前がどのように形成されているかを見て、それらのグラフィカル・オブジェクトを直接操作することができるだろう。ボタンならなおさらで、グラフィックオブジェクトが1つしかないので簡単なはずです。
そう、すでに2人の無関係な人が、あなたのコードの十字架をフォトショップで加工しています )
あなたのコードは正しく動作しません - それはコード自体を見れば明らかです)。
2人?想像の範囲外か?せめてもっとよく読んで、せめてもっとよく写真を見てほしい。最初のメッセージは、デバッガーからのものです。デバッガを使わなくてもコンパイルして動きます。
2人?あなたの妄想から、ですか?もっとよく読むか、せめて写真をよく見るべきだろう。最初のメッセージは、デバッガーからのものです。デバッガを使用しない場合は、コンパイルして動作します。
デバッガ無しでクラッシュするようになった)
デバッガでもクラッシュする ))
スクリプトの出力ログをどこで見るかわからないだけでは?)))
デバッガがないとクラッシュする)
私もデバッガーでクレストしてます(笑)。
スクリプトの出力ログを見る場所がわからないだけでは?)))
いや、知らないよ、どこにあるか教えてよ。
別件で一言。CButtonから子クラスCMyButtonを作成すると、ボタンを作成した後、クラスの外でそのプロパティを変更することができます。以下はOnInit()で行われます。
しかし、子クラスの内部に追加のフィールドを作り、CButtonクラスの組み込みプロパティを新しい関数で使用したい場合、どのようにすれば正しく実装できるでしょうか?
CButtonクラスでは、m_buttonクラスのメンバはprivateセクションで宣言されています。
また「尻尾」側から問題を解決しているようですが、私は反対側から解決することをお勧めします。
親クラスのプライベートセクションに入ることはできません。
去年、dynamic_castを勉強したら、すごいことができるようになったんだけど、時間がかかるんだよね。
デバッガを使わなくてもできました )
checked - I also got: 2019.07.05 17:10:27.307 1 (EURUSD,H1) invalid pointer access in '1.mq5' (43,6)
そして、あなたに興味を持ちました。だから、私は本当にあなたが思っているような馬鹿なのかもしれないと思いました。5年前に書いたコードを掘り起こしたので、そのスニペットを紹介します。
だから、あなたはキープできる...吐くんだ好きなだけ...と馬鹿な夢を見るが、今のところ逆である。狂った悪魔のように飛び回っているが、無駄なことだ。
***
そして、私のそのコードは、コンパイルして動くにもかかわらず、すぐに何かが間違っていることが明らかになるのです。オブジェクトはdeleteで削除されない。
しかし、あなたは私がCObj objというものすら知らないと信じたいのでしょう、信じ続けてください...
***
しかし、彼らは「祖父の腹いせに」耳からかかとまで凍らせる覚悟でいるのだ。ゴミ収集機もMQLで登場した。
でも、あなたに興味を持ったので、もしかしたら私は本当にあなたが思っているようなバカなのかもしれないと思いました。5年前に書いたコードを掘り起こしたので、そのスニペットを紹介します。
だから、あなたはキープできる...吐くんだ好きなだけ...そして、私がバカだとパイプを出すが、今のところ逆である。
ここではすべてが正しく、ポインターは参照されています。一方、この戦いの原因となったのは、存在しないオブジェクトへの参照です。コードによく目を通してください。
ある場所には*が、別の場所には*&があることに気付けないとでも思っているのだろうか。
また、私がCObj obj; が何であるかを知らないとでも思っているのでしょうか?
...存在しないオブジェクトへの参照...
でも、コンパイルして動くんです。
ある場所には*が、別の場所には*&があることに気付けないとでも思っているのだろうか。
また、私がCObj obj; が何であるかを知らないとでも思っているのでしょうか?