Diskussion zum Artikel "Grafische Interfaces IX: Die Fortschrittsanzeige und das Linienchart-Control (Kapitel 2)" - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Warum?
Deklarieren Sie die Datentypen am Anfang des Programms, und danach - initiieren Sie die Werte der Variablen der von Ihnen deklarierten Typen.
m_progress_bar.Update(i,total); ist überhaupt nichts. Welche Größe sollte der Balken haben?
Deklarieren Sie die Datentypen am Anfang des Programms, und danach - initiieren Sie die Werte der Variablen der von Ihnen deklarierten Typen.
...
m_progress_bar.Update(i,total); ist überhaupt nichts. Welche Größe sollte der Balken haben?
double new_width=(m_current_index/m_steps_total)*m_bar_bg.XSize();etwa so ...so ...
1. Datentyp-Deklaration.
2. Zuweisung eines Wertes an eine Variable dieses Typs.
Wenn es nicht passt, dann - hast du etwas falsch gemacht.
Regeln für das Betreten eines Raumes:
1. Granate.
2. automatisches Gewehr.
3. Я.
Die Hauptsache ist, es nicht zu verwechseln.
1. Datentyp-Deklaration.
2. Zuweisung eines Wertes an eine Variable dieses Typs.
Wenn es nicht passt, dann - haben Sie etwas falsch gemacht.
Regeln für das Betreten eines Raumes:
1. Granate.
2. automatisches Gewehr.
3. Я.
Die Hauptsache ist, es nicht zu verwechseln.
Vielleicht sind Ihre Worte zu weise für meinen urlaubenden Verstand....
Warum zuid-zuid-west?
Anatoly, entschuldigen Sie, dass ich aufdringlich bin, aber ich würde gerne wissen, wie es möglich ist, den Fortschrittsbalken innerhalb einer Schleife mit umfangreichen Berechnungen zu aktualisieren.
Zum Beispiel, wir haben einen Fortschrittsbalken m_progress_bar, wir haben eine Schleife innerhalb von CProgram
Könnten Sie mir an einem so "abstrakten" Beispiel erklären, was ich nicht verstehe?
Vielleicht sind diese schweren Berechnungen so lang, dass das Programm die Funktion Func() nicht verlassen kann? Ist das der Grund, warum der Fortschrittsbalken nicht aktualisiert wird? Vielleicht gibt es dort eine Endlosschleife?
Jedes Element hat Show() und Hide() Methoden, um seine Sichtbarkeit zu kontrollieren.
m_progress_bar.Hide(); // blendet den Fortschrittsbalken aus irgendeinem Grund nicht aus, ich muss ihn unter einem anderen grafischen Objekt ausblenden.//---
Im Allgemeinen ist es schwer, etwas über einen aus dem Zusammenhang gerissenen Codeblock zu sagen. Ein funktionierendes Beispiel mit einem Fortschrittsbalken, bei dem alles funktioniert, ist im Artikel: GUIs X: Updates for Easy And Fast library (build 2) zu sehen.
Besser noch: Fügen Sie einen minimalen Code für die Wiedergabe bei. Dies ist der schnellste Weg, um einen Hinweis zu erhalten. Ein einfaches Diagramm reicht für die Wiedergabe aus:
Die Schaltfläche auf dem Hauptfenster öffnet das Dialogfenster. Die Schaltfläche auf dem Dialogfenster startet "schwere Berechnungen".
Wahrscheinlich sind diese umfangreichen Berechnungen so lang, dass das Programm die Funktion Func() nicht beenden kann? Ist das der Grund, warum der Fortschrittsbalken nicht aktualisiert wird? Vielleicht gibt es dort eine Endlosschleife?
Jedes Element hat Show() und Hide() Methoden, um seine Sichtbarkeit zu kontrollieren.
//---
Im Allgemeinen ist es schwer, etwas über einen aus dem Zusammenhang gerissenen Codeblock zu sagen. Ein funktionierendes Beispiel mit einem Fortschrittsbalken, bei dem alles funktioniert, ist im Artikel: GUIs X: Updates for Easy And Fast library (build 2) zu sehen .
Ja, Anatol, in deinen Beispielen funktioniert es natürlich. Aber es ist nur ein Beispiel, es ist nur eine Dekoration. Der Fortschrittsbalken, das Beispiel für seine Aktualisierung, wird in einem Timer mit abstrakten Werten erstellt.
Wenn ich es nicht in einem Timer mit hypothetischen Werten mache, sondern in einer normalen langen Schleife innerhalb des Programms, nicht in einem Timer, wird der Fortschrittsbalken während der Schleife nicht aktualisiert, er wird bereits aktualisiert angezeigt, wenn er wieder angezeigt wird.
Könnten Sie ein Beispiel für die Arbeit mit dem Fortschrittsbalken im Hauptprogramm in einer Schleife geben? Zum Beispiel in einer Schleife wie dieser:
Es wäre interessant, den korrekten Umgang mit dem Fortschrittsbalken zu sehen, nicht so, wie ich denke, dass er sein sollte.
Ja, Anatole, in deinen Beispielen funktioniert es natürlich. Aber sie sind nur ein Beispiel, eine Täuschung. Der Fortschrittsbalken, das Beispiel für seine Aktualisierung, wird in einem Timer mit abstrakten Werten erstellt.
Wenn ich es nicht in einem Timer mit hypothetischen Werten mache, sondern in einer normalen langen Schleife innerhalb des Programms, nicht in einem Timer, wird der Fortschrittsbalken während der Schleife nicht aktualisiert, er wird bereits aktualisiert angezeigt, wenn er wieder angezeigt wird.
Vielleicht würde ChartRedraw() helfen?
Ja, danke, m_chart.Redraw() hat geholfen:
MetaTrader-Handelsplattform-Screenshots
KBR, D1, 2016.08.22.
Just2Trade Online Ltd, MetaTrader 5, Demo