記事"カスタムグラフィックコントロール パート3. フォーム"についてのディスカッション - ページ 2

 
Urain:

私はすべてを正しく行った。

MEの可能性を考えると、非常に便利だ。完全なキッチュの時代の日本のミニマリズム、すべてがそこにあり、余計なものは何もない。

オブジェクトをループさせたい人は、postfixシェルを実装して、そこに好きなように書くことができる。


Nikolayさん、MQL5ではこのようなことが可能だと思いますか?


         void OnHideEvent(){
            // 7.すべてのフォーム・コントロールに対する Hide() メソッドの呼び出し
            m_hm.Hide(); 
            m_vm1.Hide(); 
            m_vm2.Hide(); 
            m_vm3.Hide();             
            m_fr1.Hide();
            m_fr2.Hide();               
            m_ib.Hide();
            m_sib.Hide();
            m_dib.Hide();
            m_cb.Hide();  
            m_chb.Hide();  
            m_rg1.Hide();  
            m_rg2.Hide();  
            m_lms1.Hide();
            m_lms2.Hide();
            m_but.Hide();
         }

        void OnWindowChangeEvent(int aSubWindow){
            // 8. Вызов метода SetSubWindow() для всех элементов управления формы. Номер подокна находится в аргументе aSubWindow.
            m_hm.SetSubWindow(aSubWindow);
            m_vm1.SetSubWindow(aSubWindow);
            m_vm2.SetSubWindow(aSubWindow);
            m_vm3.SetSubWindow(aSubWindow); 
            m_fr1.SetSubWindow(aSubWindow);
            m_fr2.SetSubWindow(aSubWindow);            
            m_ib.SetSubWindow(aSubWindow);
            m_sib.SetSubWindow(aSubWindow);
            m_dib.SetSubWindow(aSubWindow);
            m_cb.SetSubWindow(aSubWindow);
            m_chb.SetSubWindow(aSubWindow);
            m_rg1.SetSubWindow(aSubWindow);
            m_rg2.SetSubWindow(aSubWindow);
            m_lms1.SetSubWindow(aSubWindow);
            m_lms2.SetSubWindow(aSubWindow);
            m_but.SetSubWindow(aSubWindow);
            
         }

 
sergeev:

ニコライ、これはMQL5の可能性に沿っていると思うかい?

いいえ、日本人は反対です。 正確には3行にすべきです。
 
sergeev:

ニコライさん、MQL5では、これはきちんとした、可能性に応じたものに見えると思いますか?

入力する時間がなければ、テンプレートを使えばいい。

私たちはコードを書いているのであって、文字から絵を描いているわけではないのだから。

特に問題はないと思います。

 
ただの意見だよ。私はどちらかというとコードペインティングが好きなんだ。エステート。:)
 
sergeev:

ただの意見だよ。私はどちらかというとコードペインティングが好きなんだ。エステート。:)

実際、Integerは あなたが望んでいたよりも少し抽象度の低いAPIを提供している。

まあ、自分で改良してコードベースに置けば、APIがもっと普及するかもしれない。

 
papaklass:

引き下がるべきではなかった。

プロとしての倫理もあるから。インテージャーはプロだから教える必要はない。

しかし、医者が死体安置所と言えば、死体安置所だ。

 
Urain:

実際、Integerは あなたが望んでいたよりも少し抽象度の低いAPIを提供している。

まあ、それを自分好みに改良してコードベースに置けば、もしかしたらAPIはもっと普及するかもしれない。

すべてのクラスが同じメソッド・セットを持ち、その半分が無効であるようなライブラリは、人気が出ることはないだろう。

 
papaklass:

引き下がるべきじゃなかった。まったくその通りだ。自分をクールなプロのプログラマーと位置づける人間は、正しく美しいコードを書く義務がある。初心者は見習うべき点があるだろう。

sergeev氏は、基本的かつ位置的な誤解に陥って、bool、int、double、stringなどの変数を1つの配列にまとめるようなことを提案している。

しかし、papaklass氏は、真の荒らしとして、ノイズは聞こえるが、それがどこにあるのかわからない。

Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип bool
Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип bool
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Тип bool - Документация по MQL5
 
Integer:

セルゲイエフさんbool,int,double,stringなどの変数を1つの配列にまとめることを提案している。

...

これは原理的には可能だが

このような普遍化は、最終的な実装においてリソースの過剰消費につながる。グラフィックはそのままではリソースの消費が激しい。

そして、その代償として、より抽象化されたクラスを買うことになる。

しかし、実装が複雑になればなるほどバグが多くなるのは事実だ。

 
Urain:

この値段で買えるのは、より抽象化されたクラスだけだ。

あなたは間違っている。ドミトリーも間違っているし、アレックスも間違っている。(みんな間違っている!))))。)

繰り返しになるが、ドミトリーは書く/使う労力という点で、最良の選択肢を選んだ。

もっとシンプルに使えるものを書くのは(理解するためではなく!)もっと難しいだろう。