Fehler, Irrtümer, Fragen - Seite 1051

 
marketeer:

Noch nicht, aber ich kann es veröffentlichen.

Offenbar stammt eine weitere Frage aus demselben Thread. Nach welchem Prinzip werden die Produkte auf dem Markt sortiert? Wie kann ich die Sortierreihenfolge ändern? Ich habe zum Beispiel die Registerkarte "Beliebt". Was ist "beliebt" - Ansichten, Downloads, Bewertungen, Rating? Nichts davon scheint zu existieren. Ich würde jedoch gerne nach einem dieser Indikatoren sortieren. Und auf der Registerkarte "Bezahlt" wäre eine Sortierung nach Preis wünschenswert.

Zurzeit gibt es auch keine Sortierung. Die Produkte werden nach eigenen Kriterien sortiert. Es wäre gut, einen stärkeren Filter zu haben. Nach Preisspanne, alphabetisch, usw. Sie können sich auch schriftlich an den Service Desk wenden und einen Vorschlag machen.
 
Wie bekomme ich programmatisch die Farbe der Linie, die der Benutzer im Eigenschaftsdialog der Drehscheibe eingestellt hat?
 
marketeer:
Wie kann ich programmatisch die Linienfarbe abrufen, die der Benutzer im Eigenschaftsdialog eines Indikators eingestellt hat?

Ich kann mich nicht an eine solche Funktion erinnern.

Warum? Vielleicht gibt es eine Lösung, wenn Sie die Frage ändern.

Sie können das gesamte Farbschema mit einem Klick ändern. Geben Sie die Farbe in den Parametern ein und lassen Sie den Benutzer die Farbe in den Parametern ändern.

 
marketeer:
Wie bekomme ich programmatisch die Farbe der Linie, die der Benutzer im Eigenschaftsdialog eines Indikators eingestellt hat?

PLOT_LINE_COLOR

 

Schwer zu erkennende Fehler

int replace( int& a, const int b ) {
        int prev = a;
        a = b;
        return ( prev );
}

class A { public:
        A() : value( 5 ) {}
        virtual int      get() const     { return ( value ); }
        virtual int      set( int _New ) {return (replace(this.value, _New));}
        virtual void     print();
        int    value;
};

void A::print() {
        Print( "value1=" + get()   );
        Print( "value2=" + set( 8 ));
}

void OnStart() {
        A a;
        a.print(); 
}

Ergebnis: Wert1=5, Wert2=8, und sollte sein

Wert1=5, Wert2=5

Wenn ich dies entferne. oder das Präfix virtual aus A::set(...) entferne oder die Funktion replace durch Verschieben des Codes in A::set(...)

//убрать this.
virtual int   set( int _New ) { return ( replace( value, _New ) ); }      

//или убрать у set virtual
      int   set( int _New ) { return ( replace( this.value, _New ) ); }

//или убрать функцию replace, путем переноса кода в A::set(...)

virtual int set(int _New) {int prev=this.value; this.value=_New; return (prev);}

alles ist in Ordnung

 
A100:

Entfernen Sie dies. oder entfernen Sie das virtuelle Präfix von A::set(...) oder entfernen Sie die Funktion replace, indem Sie den Code nach A::set(...) verschieben,

+ Wenn Sie es im Debug-Modus ausführen, ist alles in Ordnung.
bei normaler Kompilierung - Fehler
 
Urain:

Ich kann mich nicht an eine solche Funktion erinnern.

Warum? Vielleicht gibt es eine Lösung, wenn Sie die Frage ändern.

ZS Ich habe es geschafft, das gesamte Farbschema mit einem Klick zu ändern. Geben Sie eine Farbe in den Parametern ein, und lassen Sie den Benutzer die Farbe in den Parametern ändern.

So wird es jetzt gemacht. Das ist unsinnig, weil die Farben in den Parametern und in der Registerkarte "Hervorgehobene Farbe" doppelt vorhanden sind.

Die Notwendigkeit ist einfach: Sie müssen das Diagramm mit Beschriftungen versehen, die den Farben der von den Benutzern ausgewählten Linien entsprechen.

Soweit ich das verstehe, liegt Lizar falsch, denn PLOT_LINE_COLOR setzt laut Dokumentation den Index des Puffers mit den Färbungsnummern (wenn eine Linie abwechselnd mit verschiedenen Farben gezeichnet wird). Meine Frage ist mit dieser Konstante nicht gelöst.

 
marketeer:

...

Soweit ich verstehe, liegt Lizar falsch, denn PLOT_LINE_COLOR setzt laut Dokumentation den Pufferindex mit Farbnummern (wenn eine Linie abwechselnd in verschiedenen Farben gezeichnet wird). Meine Frage ist mit dieser Konstante nicht gelöst.

Versuchen Sie es so:

color line_color=PlotIndexGetInteger(0,PLOT_LINE_COLOR);
 
marketeer:

So wird es jetzt gehandhabt. Das ist unsinnig, weil die Farben in den Parametern und in der Registerkarte "Hervorgehobene Farbe" doppelt vorhanden sind.

Die Notwendigkeit ist einfach: Sie müssen Markierungen auf dem Diagramm anbringen, die den Farben der von den Benutzern ausgewählten Linien entsprechen.

Soweit ich das verstehe, liegt Lizar falsch, denn PLOT_LINE_COLOR setzt laut Dokumentation den Index des Puffers mit den Färbungsnummern (wenn eine Linie abwechselnd mit verschiedenen Farben gezeichnet wird). Meine Frage ist mit dieser Konstante nicht gelöst.

Ich habe die Farben der Puffer von zwei miteinander verbundenen Indikatoren durch Ereignisse koordiniert:

   if((id==MYEVENT_PLOT_FILE+CHARTEVENT_CUSTOM) && (sparam==FName)) 
   {
      if(lparam!=0) PlotIndexSetInteger(2,PLOT_LINE_COLOR,(int)lparam);
      FileRedraw();
      ChartRedraw(0);
   } 

Ich rufe dieses Ereignis (von einem anderen Indikator aus) wie folgt auf:

      EventChartCustom(ChartID(),MYEVENT_PLOT_FILE,(long) PlotIndexGetInteger(0,PLOT_LINE_COLOR),0,FName);
Alles funktioniert.
 
MetaDriver:

Stimmt nicht, es stimmt.

Danke, ich werde es ausprobieren. Aber gibt es irgendwo in der Dokumentation etwas darüber zu lesen? Ich meine, es sollte geschrieben werden, dassPLOT_LINE_COLOR es erlaubt, die Farbe eines normalen Puffers zu setzen und zu lesen, nicht eines "mehrfarbigen".