記事"グラフィカルインタフェースIX:プログレスバーと折れ線グラフコントロール(チャプター2)"についてのディスカッション - ページ 2 1234 新しいコメント Алексей Тарабанов 2016.08.21 03:30 #11 Artyom Trishkin:なぜか?プログラムの最初にデータの型を 宣言し、その後に宣言した型の変数の値を開始する。m_progress_bar.Update(i,total);は何もしていない。どのような大きさのバーを表示すべきでしょうか? Artyom Trishkin 2016.08.21 03:38 #12 Алексей Тарабанов: プログラムの最初にデータの型を 宣言し、その後に宣言した型の変数の値を開始する。 ループ変数の何が問題なのか? Artyom Trishkin 2016.08.21 03:39 #13 Алексей Тарабанов:...m_progress_bar.Update(i,total);は全く何もしていない。どのサイズのバーを表示すればいいのでしょうか? double new_width=(m_current_index/m_steps_total)*m_bar_bg.XSize(); このように. Алексей Тарабанов 2016.08.21 04:01 #14 Artyom Trishkin: このように1.データ型の宣言2.その型の変数への値の代入。辻褄が合わなければ、何かを間違えたことになる。入室のルール 1.手榴弾。 2.自動小銃 3. Я. 主なものは、混ぜないこと。 Artyom Trishkin 2016.08.21 04:18 #15 Алексей Тарабанов:1.データ型の宣言。2.この型の変数に値を代入する。もし辻褄が合わなければ、何かを間違えたことになる。入室のルール 1.手榴弾。 2.自動小銃 3. Я. 主なものは、混ぜないこと。あなたの言葉は、休暇中の私の心には賢すぎるのかもしれない...。なぜズイード・ズイード・ウエストなのか? Anatoli Kazharski 2016.08.21 08:22 #16 Artyom Trishkin:Anatolyさん、押しつけがましくて申し訳ないのですが、重たい計算を伴うループの中でプログレス・バーを更新する方法を教えてください。例えば、プログレスバーm_progress_barがあり、CProgramの中にループがあります。このような "抽象的な "例で、私が理解していないことを説明していただけますか?おそらく、これらの重い計算は、プログラムがFunc()関数を終了できないほど長いのでしょうか?プログレス・バーが更新されないのはそのためですか?永久ループがあるのでは? m_progress_bar.Show(); // なぜなら、このウィンドウがバインドされているウィンドウ(m_window.Show())を表示するときに、このウィンドウはすぐに表示されるからである、 // 非表示の状態で作成し、必要なときに表示したい各要素にはShow()メソッドとHide()メソッドがあり、その可視性を制御します。m_progress_bar.Hide(); // プログレス・バーを隠すには、別のグラフィカル・オブジェクトの下に隠さなければならない。//---一般的に、文脈から取り出されたコードブロックについて何かを言うのは難しい。プログレス・バーを使った動作例は、GUI X: Update for Easy And Fast library (build 2) にあります。 Anatoli Kazharski 2016.08.21 10:51 #17 もっといいのは、再生用の最小限のコードを添付すること。これがヒントを得るための最速の方法だ。再生は簡単な図で十分です:ボタンのあるメイン・ウィンドウ。( 1)ボタンと(2)プログレス・バー(作成直後は非表示)。メイン・ウィンドウのボタンはダイアログ・ボックスを開く。ダイアログボックスのボタンは「重い計算」を開始する。 Artyom Trishkin 2016.08.22 11:10 #18 Anatoli Kazharski:おそらく、これらの重い計算が長すぎて、プログラムがFunc()関数を終了できないのでは?プログレス・バーが更新されないのはそのためか?永久ループが存在するのだろうか?各要素にはShow()メソッドとHide()メソッドがあり、その可視性を制御します。//---一般的に、文脈から取り出されたコードブロックについて何かを言うのは難しい。プログレス・バーを使った動作例は、GUI X: Update for Easy And Fast library (build 2) にあります。はい、Anatolさん、あなたの例ではもちろん動作します。しかし、それはただの例であり、ただの飾りです。プログレスバー、その更新の例は、抽象的な値を持つタイマーで作られています。仮の値を持つタイマーの中ではなく、タイマーではなく、プログラム内部の通常の長いループの中でそれをやり始めると、プログレスバーはループ中に更新されず、再び表示されるときにはすでに更新された状態で表示されます。メインプログラムのループでプログレスバーを操作する例を教えていただけませんか?例えば、このようなループです://+------------------------------------------------------------------+ //--- ボタンが押された場合 //--- プログレスバーを表示しよう m_progress_bar_d1.Show(); for(int i=0; i<sz; i++) { //--- プログレスバーを更新する Print(「プログレスバーの更新:インデックス=",i,", total=",sz); m_progress_bar_d1.Update(i,sz); double a=1; //--- 少々長い計算 for(int k=0; k<(INT_MAX/16); k++) a=pow(a,a+a); } //--- プログレスバーを隠す m_progress_bar_d1.Hide(); //+------------------------------------------------------------------+ プログレス・バーを使った正しい操作を見てみたいのですが。 Anatoli Kazharski 2016.08.22 17:23 #19 Artyom Trishkin:そうだよ、アナトール、君の例ではもちろんうまくいく。しかし、それは見せかけの例に過ぎない。プログレス・バー、その更新の例は、抽象的な値を持つタイマーで作られている。仮の値を持つタイマーの中ではなく、タイマーではなく、プログラム内部の通常の長いループの中でそれを始めると、プログレス・バーはループの間に更新されず、再び表示されるときにはすでに更新された状態で表示されます。 もしかしたら、ChartRedraw()が助けになるかもしれません。 Artyom Trishkin 2016.08.22 19:24 #20 Anatoli Kazharski: もしかしたら、ChartRedraw()が助けになるかも?はい、ありがとうございます: MetaTrader 取引プラットフォームのスクリーンショット KBR, D1, 2016.08.22. Just2Trade Online Ltd, MetaTrader 5, デモ 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
なぜか?
プログラムの最初にデータの型を 宣言し、その後に宣言した型の変数の値を開始する。
m_progress_bar.Update(i,total);は何もしていない。どのような大きさのバーを表示すべきでしょうか?
プログラムの最初にデータの型を 宣言し、その後に宣言した型の変数の値を開始する。
...
m_progress_bar.Update(i,total);は全く何もしていない。どのサイズのバーを表示すればいいのでしょうか?
double new_width=(m_current_index/m_steps_total)*m_bar_bg.XSize();このように.このように
1.データ型の宣言
2.その型の変数への値の代入。
辻褄が合わなければ、何かを間違えたことになる。
入室のルール
1.手榴弾。
2.自動小銃
3. Я.
主なものは、混ぜないこと。
1.データ型の宣言。
2.この型の変数に値を代入する。
もし辻褄が合わなければ、何かを間違えたことになる。
入室のルール
1.手榴弾。
2.自動小銃
3. Я.
主なものは、混ぜないこと。
あなたの言葉は、休暇中の私の心には賢すぎるのかもしれない...。
なぜズイード・ズイード・ウエストなのか?
Anatolyさん、押しつけがましくて申し訳ないのですが、重たい計算を伴うループの中でプログレス・バーを更新する方法を教えてください。
例えば、プログレスバーm_progress_barがあり、CProgramの中にループがあります。
このような "抽象的な "例で、私が理解していないことを説明していただけますか?
おそらく、これらの重い計算は、プログラムがFunc()関数を終了できないほど長いのでしょうか?プログレス・バーが更新されないのはそのためですか?永久ループがあるのでは?
各要素にはShow()メソッドとHide()メソッドがあり、その可視性を制御します。
m_progress_bar.Hide(); // プログレス・バーを隠すには、別のグラフィカル・オブジェクトの下に隠さなければならない。//---
一般的に、文脈から取り出されたコードブロックについて何かを言うのは難しい。プログレス・バーを使った動作例は、GUI X: Update for Easy And Fast library (build 2) にあります。
もっといいのは、再生用の最小限のコードを添付すること。これがヒントを得るための最速の方法だ。再生は簡単な図で十分です:
メイン・ウィンドウのボタンはダイアログ・ボックスを開く。ダイアログボックスのボタンは「重い計算」を開始する。
おそらく、これらの重い計算が長すぎて、プログラムがFunc()関数を終了できないのでは?プログレス・バーが更新されないのはそのためか?永久ループが存在するのだろうか?
各要素にはShow()メソッドとHide()メソッドがあり、その可視性を制御します。
//---
一般的に、文脈から取り出されたコードブロックについて何かを言うのは難しい。プログレス・バーを使った動作例は、GUI X: Update for Easy And Fast library (build 2) にあります。
はい、Anatolさん、あなたの例ではもちろん動作します。しかし、それはただの例であり、ただの飾りです。プログレスバー、その更新の例は、抽象的な値を持つタイマーで作られています。
仮の値を持つタイマーの中ではなく、タイマーではなく、プログラム内部の通常の長いループの中でそれをやり始めると、プログレスバーはループ中に更新されず、再び表示されるときにはすでに更新された状態で表示されます。
メインプログラムのループでプログレスバーを操作する例を教えていただけませんか?例えば、このようなループです:
プログレス・バーを使った正しい操作を見てみたいのですが。
そうだよ、アナトール、君の例ではもちろんうまくいく。しかし、それは見せかけの例に過ぎない。プログレス・バー、その更新の例は、抽象的な値を持つタイマーで作られている。
仮の値を持つタイマーの中ではなく、タイマーではなく、プログラム内部の通常の長いループの中でそれを始めると、プログレス・バーはループの間に更新されず、再び表示されるときにはすでに更新された状態で表示されます。
もしかしたら、ChartRedraw()が助けになるかも?
はい、ありがとうございます:
MetaTrader 取引プラットフォームのスクリーンショット
KBR, D1, 2016.08.22.
Just2Trade Online Ltd, MetaTrader 5, デモ