Diskussion zum Artikel "Grafisches Interface X: Sortieren, Neuerstellen der Tabelle und Steuerelemente der Zellen (build 11)" - Seite 7
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
Ich muss das falsche Beispiel in den Artikel eingefügt haben. Auf jeden Fall korrigieren Sie es für Ihre Aufgaben, wie Sie es brauchen.
Ich kopiere nicht Ihren Code, ich interessiere mich für die Arbeit der SetImages-Methode selbst, ist es notwendig, Bilder in jeder Zelle zu setzen, wenn Sie sie in jeder Spalte der Tabelle verwenden, oder ist es ein Fehler in Ihrem Beispiel und Sie müssen sie nur einfügen, wo Sie sie verwenden?
Ich kopiere Ihren Code nicht, sondern interessiere mich für die Arbeit der SetImages-Methode selbst. Ist es notwendig, Bilder in jede Zelle einzufügen, wenn Sie sie in einer beliebigen Spalte der Tabelle verwenden, oder ist es ein Fehler in Ihrem Beispiel und Sie sollten sie nur dort einfügen, wo Sie sie verwenden?
Soweit ich das verstanden habe, müssen Sie Bilder nur in die Zellen der ersten Spalte einfügen.
Versuchen Sie es so:
Soweit ich das verstanden habe, müssen Sie Bilder nur in die Zellen der ersten Spalte einfügen.
Versuchen Sie dies:
))))) es gibt also immer noch einen Tippfehler in der Methode? ich bin so vorgegangen.
Und wie kann man die Belastung der berechneten Kapazitäten am besten optimieren. Es gibt Daten, die einmal pro Periode gezählt werden (z.B. M5), die Daten werden in einer Tabelle von OnTimer angezeigt. Die Größe der Zeilen bei jeder Neuberechnung ist nicht garantiert, dass sie der letzten Berechnung entspricht. Ich sehe bisher zwei Möglichkeiten:
1. Nach jeder Neuberechnung alle Zeilen löschen und die erforderliche Anzahl von Zeilen erstellen. Zwischen den Neuberechnungen werden die Daten einfach aktualisiert.
2. Nach jeder Neuberechnung aktualisieren wir die Daten in den vorhandenen Zeilen der Tabelle, wenn es nicht genug Zeilen gibt, fügen wir neue hinzu, wenn es mehr Zeilen als Daten gibt, löschen wir die, die wir nicht brauchen.
Welche dieser Optionen ist für eine Tabelle, die auf CCanvasTable basiert, am besten geeignet?
...
Welche dieser Optionen ist für eine auf CCanvasTable basierende Tabelle besser geeignet?
Ich werde Ihnen nicht sofort eine Antwort geben können. Versuchen Sie, Tests mit Zeitmessungen(GetTickCount() oder GetMicrosecondCount()) durchzuführen oder testen Sie im Profiling-Modus.
aus irgendeinem Grund wird das Bild nur in der Spalte mit dem Index 0 eingefügt, in anderen Spalten wird es nicht eingefügt, ist das eine Besonderheit oder etwas falsch?
Und welches Ergebnis möchten Sie erhalten? Beschreiben Sie es im Detail.
Und wo liegt das Problem, es selbst zu machen? Alle notwendigen Methoden sind dafür vorgesehen.
P.S. Zeigen Sie Screenshots und Code, um besser zu verstehen, was Sie brauchen.
Und welches Ergebnis wünschen Sie sich? Beschreiben Sie es im Detail.
Und was ist das Problem, wenn Sie es selbst machen? Alle notwendigen Methoden werden dafür bereitgestellt.
P.S. Zeigen Sie Screenshots und Code, um besser zu verstehen, was Sie brauchen.
Wenn ich Ihr Beispiel verwende, ändere ich den Index von 0 auf 1:
Die Icons sollten sich in die Spalte mit dem Index 1, also die zweite, bewegen, aber das passiert nicht. Das Beispiel ist aus TestLibrary10.mqh entnommen. Ich habe keine Methoden für die Positionierung der Zahlen gefunden, wenn es welche gibt, sagen Sie es mir bitte.
Im Allgemeinen kann ich das Prinzip des Ladens von Bildern in die Zellen der Tabelle nicht verstehen. Im Beispiel TestLibrary09.mqh werden Zeichnungen in verschiedenen Spalten geladen, und im Beispiel TestLibrary10.mqh nur in der Spalte mit dem Index 0, wenn sie in anderen Spalten eingestellt sind, werden Zeichnungen nicht geladen. Können Sie mir sagen, was ist die Feinheiten dort?
Für jede Zelle der Tabelle, die Bilder enthalten soll, benötigen Sie ein eigenes Array von Bildern. Wenn die Zelle vom Typ CELL_BUTTON ist, dann reicht ein Minimum von einem Bild pro Zelle, wenn der Typ CELL_CHECKBOX, dann ein Minimum von zwei.
Ein Beispiel:
Das Bild mit dem Index 0 - entspricht dem "gedrückten" Zustand der Checkbox (Schaltfläche), die anderen Indizes entsprechen dem "ausgewählten" Zustand der Checkbox (Schaltfläche).
(nicht fertig, aber zum Verständnis ausreichend):
Bildschirmfotos der MetaTrader-Handelsplattform
EURUSD, M1, 2017.04.21
MetaQuotes Software Corp, MetaTrader 4, Demo
arr_chk[2]; arr_chk[0]=m_img_chk_off; (Bild eines Kontrollkästchens mit nicht aktiviertem Kontrollkästchen) arr_chk[1]=m_img_chk_on; (Bild eines Kontrollkästchens mit aktiviertem Kontrollkästchen)
In der Haupttabelle:
Zelle 0 enthält das Eröffnungsbild des Diagramms - es hat den Typ CELL_BUTTON, Sie können ein Array von Bildern mit der Dimension 1 haben: arr_img0[1]; arr_img0[0]=m_image_graph;
Zelle 8 enthält das Eröffnungsbild Kaufen - ihr Typ ist CELL_BUTTON, das Bild-Array kann die Dimension 1 haben: arr_img8[1]; arr_img8[0]=m_image_buy;
Zelle 9 enthält das Eröffnungsbild Verkauf - ihr Typ ist CELL_BUTTON, das Bild-Array kann die Dimension 1 haben: arr_img9[1]; arr_img9[0]=m_image_sell;
Nachdem Sie die Tabelle erstellt haben, können Sie sie mit den erforderlichen Werten initialisieren und die erforderlichen Zellentypen sowie Ihre eigenen Bild-Arrays für sie festlegen.
Für jede Zelle der Tabelle, die Bilder enthalten soll, benötigen Sie ein eigenes Array von Bildern. Wenn die Zelle vom Typ CELL_BUTTON ist, dann reicht ein Minimum von einem Bild pro Zelle, wenn der Typ CELL_CHECKBOX ist, dann ein Minimum von zwei. Das Bild mit dem Index 0 entspricht dem Zustand "gedrückt" des Kontrollkästchens (der Schaltfläche), die anderen Indizes entsprechen dem Zustand "ausgewählt" des Kontrollkästchens (der Schaltfläche).
Ein Beispiel (nicht fertig, aber zum Verständnis ausreichend):
arr_chk[2]; arr_chk[0]=m_img_chk0; arr_chk[1]=m_img_chk1;
In der Haupttabelle:
Zelle 0 enthält das Eröffnungsbild des Graphen - es hat den Typ CELL_BUTTON, Sie können ein Array von Bildern mit der Dimension 1 haben: arr_img0[1]; arr_img0[0]=m_image_graph;
Zelle 8 enthält das Eröffnungsbild Kaufen - ihr Typ ist CELL_BUTTON, das Bild-Array kann die Dimension 1 haben: arr_img8[1]; arr_img8[0]=m_image_buy;
Zelle 9 enthält das Eröffnungsbild Verkauf - sie hat den Typ CELL_BUTTON, das Bild-Array kann die Dimension 1 haben: arr_img9[1]; arr_img9[0]=m_image_sell;
Sobald die Tabelle erstellt ist, können Sie sie mit den gewünschten Werten initialisieren und die gewünschten Zellentypen und Bildfelder für sie festlegen.
Ich verstehe wirklich nicht, was das Problem ist )) in der ersten Bildschirm geändert, um die Spalte mit Index 1 Bilder verschwunden, und in der zweiten Bildschirm zurück zu der Spalte mit Index 0, erschienen die Bilder. Dies ist alles auf dem Beispielcode TestLibrary10. mqh
Hier sind die Methoden zur Erstellung der Tabelle:
ist Initialisierung:
Dies ist die Aktualisierung:
hervorgehoben von 0 auf 1 geändert, d.h. das Einfügen der Bilder in die Spalte von Nummer 0 auf Nummer 1 geändert, wo ist hier der Fehler?