[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 46

 

Hallo! Ich brauche Hilfe bei der Überarbeitung des Codes. Der Hauptteil des Codes ist als Datei beigefügt. Der Code baut eine Tabelle auf. Ich habe herausgefunden, wie ich meine Werte in den Inhalt der Tabelle einfügen kann, habe aber erfolglos versucht, dasselbe mit der Schriftfarbe zu tun.

Sie müssen also eine Textfarbsteuerung wie bei Content vornehmen:

   // Готовим массив с содержимым таблицы      
      for(int i=0;i<20;i++)
      {
       for(int j=0;j<2;j++)
       {
        Content[i][j]="Колонка "+(j+1)+", строка "+(i+1);
       }
      }

d.h. in etwa so:

aContentTextColor [i][j] // i, j номер колонки и строки - присваивать им цвет
Dateien:
1.mq4  8 kb
 
Kondratiev_A_A:

Hallo! Ich brauche Hilfe bei der Überarbeitung des Codes. Der Hauptteil des Codes ist als Datei beigefügt. Der Code baut eine Tabelle auf. Ich habe herausgefunden, wie ich meine Werte in den Inhalt der Tabelle einfügen kann, habe aber erfolglos versucht, dasselbe mit der Schriftfarbe zu tun.

Sie müssen also die Textfarbe so steuern, wie Sie es mit Content tun:

d.h. etwa so:

die Anzahl der Elemente um "Zeilen" erhöhen (z.B. for(int j=0;j<4;j++) und auch in der Array-Deklaration entsprechend) und im 2. und 3.

oder für eine Farbe können Sie ein zweites Array der gleichen Dimension definieren, wie für den Inhalt

 
smshev:

die Anzahl der Elemente pro "Zeile" erhöhen (for(int j=0;j<4;j++) bzw. in der Array-Deklaration) und im 2. und 3. Element (nach Anzahl) die Farbcodes in einer für die weitere Interpretation geeigneten Form schreiben

oder für die Farbe können Sie ein zweites Array mit denselben Abmessungen wie für den Inhalt erstellen

Vielen Dank für die Antwort!

Versucht die zweite Option mit dem Zusatz des Arrays, aber der andere Code ist gebunden - versucht, den anderen Code rein logisch in Analogie zum Inhalt zu ändern - Fehler.

Bei der ersten Variante verstehe ich es nicht, aber ich habe das Gefühl, es wird nicht funktionieren - es wird nicht kompakt sein)

 
Kondratiev_A_A:

Vielen Dank für die Antwort!

Habe die zweite Option mit dem Array-Zusatz ausprobiert, aber der andere Code ist gebunden - habe versucht, den anderen Code rein logisch in Analogie zum Inhalt zu ändern - Fehler.

Ich verstehe es bei der ersten Variante nicht, aber ich habe das Gefühl, dass es nicht funktionieren wird - es wird nicht kompakt sein)

Lassen Sie mich die erste Variante erklären:

deklarieren Sie in der Schleifenverarbeitung neben Ihrer Zeichenkette<Inhalt [i][j]="Spalte "+(j+1)+", Zeichenkette "+(i+1);> nicht z.B. <String Inhalt[100][2]>, sondern<String Inhalt [100][3]>

Fügen Sie < Inhalt[i][j+1]="Grün" > hinzu, wenn Sie nur eine Farbe pro Zeile benötigen, oder ="1", je nachdem, wie Sie die Farben dort kodieren wollen

 
smshev:

Lassen Sie mich die erste Option erklären:

deklarieren Sie in der Verarbeitungsschleife neben Ihrer Zeichenkette<Inhalt [i][j]="Spalte "+(j+1)+", Zeichenkette "+(i+1);> ein Array nicht z.B. <String Inhalt[100][2] >, sondern<String Inhalt [100][3]>

Fügen Sie < Inhalt[i][j+1]="Grün" > hinzu, wenn Sie nur eine Farbe pro Zeile benötigen, oder ="1", je nachdem, wie Sie die Farben dort kodieren wollen


Jetzt verstehe ich, was ich meine, danke!
 
Lians:

atztek, schauen Sie sich also den Code an, wenn Sie wissen, wie der Funktionscode aussieht und er so positioniert ist:

ZS: Wenn die Funktion in INIT() oder DEINIT() enthalten ist, können Sie es ohne den Code versuchen :)

Einige Operationen, die die Funktion in deinit ausführen darf, sind in start etc. nicht erlaubt. (er wird in verschiedenen Teilen des Codes mehrfach verwendet). Ich dachte, vielleicht gibt es einen Befehl, mit dem Sie das überprüfen können.
Und im Allgemeinen wurde das Problem gelöst, indem eine weitere externe Variable in die Liste der Funktionsvariablen aufgenommen wurde.

 
smshev:

Lassen Sie mich die erste Option erklären:

deklarieren Sie in der Verarbeitungsschleife neben Ihrer Zeichenkette<Inhalt [i][j]="Spalte "+(j+1)+", Zeichenkette "+(i+1);> ein Array nicht z.B. <String Inhalt[100][2] >, sondern<String Inhalt [100][3]>

Fügen Sie < Inhalt[i][j+1]="Grün" > hinzu, wenn Sie nur eine Farbe pro Zeile benötigen, oder ="1", je nachdem, wie Sie die Farben dort kodieren wollen


Leider war mir nicht klar, warum die Anzahl der Spalten von 2 auf 3 geändert wurde. Und warum sollte man Green einen Wert (String-Wert) zuweisen? Das ist mir nicht klar...
 
atztek:

Einige Operationen, die Funktionen in deinit ausführen dürfen, sind in start etc. nicht erlaubt. (es wird mehrmals in verschiedenen Teilen des Codes verwendet). Ich dachte, vielleicht gibt es einen Befehl, mit dem man das überprüfen kann.
Und im Allgemeinen wurde das Problem gelöst, indem eine weitere externe Variable in die Liste der Funktionsvariablen aufgenommen wurde.

Besser ist es, eine Variable auf globaler Ebene zu setzen, der der Wert zugewiesen werden soll, je nachdem, in welcher Funktion sich das Programm befindet. Dann muss der an die Benutzerfunktion übergebene Parameter nicht überwacht werden, was eine potenzielle Fehlerquelle darstellt.
 

Leute, bitte um Rat!

Ich brauche das Programm, um SL in zehn Pips vom Preis zu halten, und wenn es auf dem Niveau von SL schließt, wird es den Auftrag in den entgegengesetzten ändern. Wie lässt sich das bewerkstelligen?

 
alsu:
Es ist besser, eine Variable auf globaler Ebene zu definieren, der ein Wert zugewiesen werden kann, je nachdem, in welcher Funktion sich das Programm befindet. Dann ist es nicht erforderlich, den an die Benutzerfunktion übergebenen Parameter zu verfolgen, was eine potenzielle Fehlerquelle darstellt.
Stimmt, aber man kann trotzdem Fehler machen, wenn man einer globalen Variablen verschiedene Werte zuweist ;-)
Danke!
Grund der Beschwerde: