記事"グラフィカルインタフェースX: Timeコントロール、チェックボックスコントロールのリストとテーブルのソート(ビルド6)"についてのディスカッション - ページ 3 1234 新しいコメント Anatoli Kazharski 2016.12.12 20:20 #21 Artyom Trishkin:多分、そこで古いものがアップデートに追加されたのだろう。私は、記事の一番下にあるzipからサイトからダウンロードした最新のアップデートからファイルを取り出した。ここで、上に書いたように修正した: 素晴らしい。あるいは、何度もあったように、そこに何か釘を刺しているかもしれない。)しかし、何かあれば、私は心に留めておきます。 Artyom Trishkin 2016.12.12 20:46 #22 Anatoli Kazharski: ああ、よかった。そうしないと、何度もあったように、何か釘を刺されてしまうかもしれない。)でも、肝に銘じておくよ。バカなことを強要している。小さいけど、わかるでしょ。それに、自分で積んで中を見ればいいんだ。簡単なことだよ、特に教えてもらったんだから。 Anatoli Kazharski 2016.12.12 21:00 #23 Artyom Trishkin:私にバカなことをさせようとしている。小さいけど、見ることはできる。自分でダウンロードして中を見ることだってできたはずだ。証拠を出せとは言ってない。ただ、覚えておくと言っただけだ。でも、まだ再現していない。覚えておくよ。 もし問題があるとすれば、あなたの修正はすべてのケースで機能するとは限らない。あなたのケースでは機能しますが、そこではすべてのモードをテストする必要があります。問題が見つかれば自分でやるつもりだ。本当に、無意味なことはするな。) Artyom Trishkin 2016.12.12 21:09 #24 Anatoli Kazharski:証拠を出せとは言っていない。覚えておくと言っただけだ。でも、まだ再現していない。覚えておくよ。 問題がある場合、あなたの修正はすべてのケースで機能するとは限りません。あなたのケースではうまくいくが、そこではすべてのモードをテストする必要がある。問題が見つかれば自分でやるつもりだ。本当に、無意味なことはするな。)わかったよ。)Tol、質問:テーブルはカラムでソートされています。しかし......、テーブルに空の行があり、それがたくさんある場合、ソートには空の行も含まれます。例えば、1000行(1001-ヘッダーはゼロ)のテーブルがあるとしよう。しかし現在、市場概要には10文字しかない。それらはすべてテーブルの最初の10行、つまり1行目から10行目までに入っている。残りの行は空です(表は動的ではなく、記号は表に追加/削除できます)。このようなテーブルをソートしようとすると、ソートされたリストはテーブルの一番最後、990行目から1000行目(ゼロ、ヘッダー)まで行ってしまい、一番上には空の行が表示される。これは良くないことであり、私が思うに、省略である。 Anatoli Kazharski 2016.12.12 21:10 #25 Artyom Trishkin:...テーブルは動的ではなく、キャラクターはテーブルに追加/削除することができます... もうすぐダイナミックになります。私は今それに取り組んでいます。 Artyom Trishkin 2016.12.12 21:11 #26 Anatoli Kazharski: もうすぐダイナミックになる。今、その真っ最中なんだ。 それは素晴らしい!ソートされたリストに完全に空の行が含まれる問題は?それについては? Anatoli Kazharski 2016.12.12 21:14 #27 Artyom Trishkin:...そして、ソートされたリストに完全に空の行が含まれる問題は?それについてはどうですか? 今のところはこのまま。すぐにはソートには戻らないよ。 Artyom Trishkin 2016.12.12 21:32 #28 Anatoli Kazharski: 今のところはこのままだ。すぐに仕分けに戻るつもりはない。 そうだね。そして、いつかそれを微調整することができる。 Artyom Trishkin 2016.12.14 19:48 #29 Anatoli Kazharski:...ContextMenu.mqhのコンテキストメニューの 区切り線も同じで、メニュー項目間の区切りバーが座標上にありません。メソッドの中で//+------------------------------------------------------------------+//| 区切り線を作る|//+------------------------------------------------------------------+bool CContextMenu::CreateSeparateLine(const int line_number,const int x,const int y) {//--- フォーム・ポインタを保存する m_sep_line[line_number].WindowPointer(m_wnd);//--- プロパティを設定する m_sep_line[line_number].TypeSepLine(H_SEP_LINE); m_sep_line[line_number].DarkColor(m_sepline_dark_color); m_sep_line[line_number].LightColor(m_sepline_light_color); m_sep_line[line_number].AnchorRightWindowSide(m_anchor_right_window_side); m_sep_line[line_number].AnchorBottomWindowSide(m_anchor_bottom_window_side);//--- 仕切り線を作る if(!m_sep_line[line_number].CreateSeparateLine(m_chart_id,m_subwin,line_number,x,y,m_x_size-10,2)) return(false);//--- オブジェクト・ポインタを保存する CElement::AddToArray(m_sep_line[line_number].Object(0)); return(true); }//+------------------------------------------------------------------+でハイライトされた部分を//+------------------------------------------------------------------+//| 区切り線を作る|//+------------------------------------------------------------------+bool CContextMenu::CreateSeparateLine(const int line_number,const int x,const int y) {//--- フォーム・ポインタを保存する m_sep_line[line_number].WindowPointer(m_wnd);//--- プロパティを設定する m_sep_line[line_number].TypeSepLine(H_SEP_LINE); m_sep_line[line_number].DarkColor(m_sepline_dark_color); m_sep_line[line_number].LightColor(m_sepline_light_color); m_sep_line[line_number].AnchorRightWindowSide(m_anchor_right_window_side); m_sep_line[line_number].AnchorBottomWindowSide(m_anchor_bottom_window_side);//--- 仕切り線を作る if(!m_sep_line[line_number].CreateSeparateLine(m_chart_id,m_subwin,line_number,x-m_wnd.X(),y-m_wnd.Y(),m_x_size-10,2)) return(false);//--- オブジェクト・ポインタを保存する CElement::AddToArray(m_sep_line[line_number].Object(0)); return(true); }//+------------------------------------------------------------------+で置き換えたところ、セパレーターバーがその場所に表示されるようになりました。 Discussion of article "Graphical 記事"グラフィカルインタフェースX: 標準チャートコントロール(ビルド4)"についてのディスカッション Discussion of article "Graphical Anatoli Kazharski 2016.12.15 09:26 #30 Artyom Trishkin:ContextMenu.mqhのコンテキストメニューの区切り線も同様で、メニュー項目間の区切り線が座標上にありません。このようなケースはすべて再現しました。これは、他のアイテムのコンポーネントとして使用されるすべてのアイテムに当てはまります。GUI作成 時のフォームの初期絶対座標が(1,1)より大きい場合に検出されます。次のビルドで修正される予定です。一時的な応急処置として、(1)あなたの例、または(2)フォームの初期座標を(1,1)に設定する、のいずれかが有効です。他の要素位置決めモードが散見される可能性があるので、2番目の方がよいでしょう。 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
多分、そこで古いものがアップデートに追加されたのだろう。私は、記事の一番下にあるzipからサイトからダウンロードした最新のアップデートからファイルを取り出した。
ここで、上に書いたように修正した:
ああ、よかった。そうしないと、何度もあったように、何か釘を刺されてしまうかもしれない。)でも、肝に銘じておくよ。
バカなことを強要している。
小さいけど、わかるでしょ。
それに、自分で積んで中を見ればいいんだ。簡単なことだよ、特に教えてもらったんだから。
私にバカなことをさせようとしている。
小さいけど、見ることはできる。
自分でダウンロードして中を見ることだってできたはずだ。
証拠を出せとは言ってない。ただ、覚えておくと言っただけだ。でも、まだ再現していない。覚えておくよ。
もし問題があるとすれば、あなたの修正はすべてのケースで機能するとは限らない。あなたのケースでは機能しますが、そこではすべてのモードをテストする必要があります。問題が見つかれば自分でやるつもりだ。
本当に、無意味なことはするな。)
証拠を出せとは言っていない。覚えておくと言っただけだ。でも、まだ再現していない。覚えておくよ。
問題がある場合、あなたの修正はすべてのケースで機能するとは限りません。あなたのケースではうまくいくが、そこではすべてのモードをテストする必要がある。問題が見つかれば自分でやるつもりだ。
本当に、無意味なことはするな。)
わかったよ。)
Tol、質問:テーブルはカラムでソートされています。しかし......、テーブルに空の行があり、それがたくさんある場合、ソートには空の行も含まれます。例えば、1000行(1001-ヘッダーはゼロ)のテーブルがあるとしよう。しかし現在、市場概要には10文字しかない。それらはすべてテーブルの最初の10行、つまり1行目から10行目までに入っている。残りの行は空です(表は動的ではなく、記号は表に追加/削除できます)。このようなテーブルをソートしようとすると、ソートされたリストはテーブルの一番最後、990行目から1000行目(ゼロ、ヘッダー)まで行ってしまい、一番上には空の行が表示される。これは良くないことであり、私が思うに、省略である。
...テーブルは動的ではなく、キャラクターはテーブルに追加/削除することができます...
もうすぐダイナミックになる。今、その真っ最中なんだ。
...そして、ソートされたリストに完全に空の行が含まれる問題は?それについてはどうですか?
今のところはこのままだ。すぐに仕分けに戻るつもりはない。
...
ContextMenu.mqhのコンテキストメニューの 区切り線も同じで、メニュー項目間の区切りバーが座標上にありません。
メソッドの中で
//| 区切り線を作る|
//+------------------------------------------------------------------+
bool CContextMenu::CreateSeparateLine(const int line_number,const int x,const int y)
{
//--- フォーム・ポインタを保存する
m_sep_line[line_number].WindowPointer(m_wnd);
//--- プロパティを設定する
m_sep_line[line_number].TypeSepLine(H_SEP_LINE);
m_sep_line[line_number].DarkColor(m_sepline_dark_color);
m_sep_line[line_number].LightColor(m_sepline_light_color);
m_sep_line[line_number].AnchorRightWindowSide(m_anchor_right_window_side);
m_sep_line[line_number].AnchorBottomWindowSide(m_anchor_bottom_window_side);
//--- 仕切り線を作る
if(!m_sep_line[line_number].CreateSeparateLine(m_chart_id,m_subwin,line_number,x,y,m_x_size-10,2))
return(false);
//--- オブジェクト・ポインタを保存する
CElement::AddToArray(m_sep_line[line_number].Object(0));
return(true);
}
//+------------------------------------------------------------------+
でハイライトされた部分を
//| 区切り線を作る|
//+------------------------------------------------------------------+
bool CContextMenu::CreateSeparateLine(const int line_number,const int x,const int y)
{
//--- フォーム・ポインタを保存する
m_sep_line[line_number].WindowPointer(m_wnd);
//--- プロパティを設定する
m_sep_line[line_number].TypeSepLine(H_SEP_LINE);
m_sep_line[line_number].DarkColor(m_sepline_dark_color);
m_sep_line[line_number].LightColor(m_sepline_light_color);
m_sep_line[line_number].AnchorRightWindowSide(m_anchor_right_window_side);
m_sep_line[line_number].AnchorBottomWindowSide(m_anchor_bottom_window_side);
//--- 仕切り線を作る
if(!m_sep_line[line_number].CreateSeparateLine(m_chart_id,m_subwin,line_number,x-m_wnd.X(),y-m_wnd.Y(),m_x_size-10,2))
return(false);
//--- オブジェクト・ポインタを保存する
CElement::AddToArray(m_sep_line[line_number].Object(0));
return(true);
}
//+------------------------------------------------------------------+
で置き換えたところ、セパレーターバーがその場所に表示されるようになりました。
ContextMenu.mqhのコンテキストメニューの区切り線も同様で、メニュー項目間の区切り線が座標上にありません。
このようなケースはすべて再現しました。これは、他のアイテムのコンポーネントとして使用されるすべてのアイテムに当てはまります。GUI作成 時のフォームの初期絶対座標が(1,1)より大きい場合に検出されます。
次のビルドで修正される予定です。一時的な応急処置として、(1)あなたの例、または(2)フォームの初期座標を(1,1)に設定する、のいずれかが有効です。他の要素位置決めモードが散見される可能性があるので、2番目の方がよいでしょう。