記事"グラフィカルインタフェースX:リストとテーブルの高度な管理コードの最適化(ビルド7)"についてのディスカッション - ページ 12

 
Anatoli Kazharski:

値を更新するだけなら、何も削除する必要はない。

テーブルの行数を変更する必要がある場合は、その方法の1つを示します。

2つ目の方法は、CTable::Rebuilding() メソッドを使用することです。しかし、その場合、いくつかのテーブルのプロパティ(ヘッダー、列幅など)を再度設定する必要があります。

ありがとうございます。

しかし、私は CCanvasTable を持っています。CCanvasTable と CTable の違いは何ですか?普通にCCanvasTableでテーブルを作る ような気がするのですが・・・。

 
Juer:

ありがとう。

でも、CCanvasTableを持っています。CCanvasTableとCTableの違いは何ですか?普通にCCanvasTableでテーブルを作れると思うのですが・・・。

最新バージョンのライブラリ:EasyAndFastを ダウンロードし、この記事:GUI付きトレードエキスパートアドバイザー:機能で満たす(後編)のクラスで更新されたファイルをダウンロードしてください。

CTable クラスを使用してください。CCanvasTableは 非常に古いバージョンで、最小限の機能しかありません。

 
Juer:

ダウンロードしたのですが、IsSortedColumnIndex()メソッドやその類が見当たりません。

...この記事でクラスを含むファイルを更新しました: GUIでExpert Advisorを取引する: 機能で満たす (パートII)

CTable クラス

   //--- (1) 現在のソート方向、(2) ソートされた配列のインデックス
   int               IsSortDirection(void)             const { return(m_last_sort_direction);    }
   int               IsSortedColumnIndex(void)         const { return(m_is_sorted_column_index); }
 
Juer:

...

DeleteColumn()、DeleteRow()も消えた。

もう少し気をつければいいのだろうか?

   //--- テーブル再構築
   void              Rebuilding(const int columns_total,const int rows_total,const bool redraw=false);
   //--- 指定されたインデックスのテーブルにカラムを追加する。
   void              AddColumn(const int column_index,const bool redraw=false);
   //--- テーブルの指定されたインデックスのカラムを削除する。
   void              DeleteColumn(const int column_index,const bool redraw=false);
   //--- 指定されたインデックスのテーブルに行を追加する。
   void              AddRow(const int row_index,const bool redraw=false);
   //--- 指定されたインデックスによってテーブルの行を削除する。
   void              DeleteRow(const int row_index,const bool redraw=false);
   //--- すべての行を削除する
   void              DeleteAllRows(const bool redraw=false);
   //--- テーブルをクリアする。1つの列と1つの行だけが残る。
   void              Clear(const bool redraw=false);
 
Anatoli Kazharski:

...この記事のクラスを含むファイルを更新しました: GUIを使ったExpert Advisorの取引:機能で満たす(後編)

CTable クラス

失礼しました。ある場所にコピーして別のMetaEditorを見ています。ありがとう。