Ошибки, баги, вопросы - страница 1051

 
marketeer:

Нет еще, но могу тиснуть.

Видимо из той же оперы еще вопрос. По какому принципу сортируются продукты в Маркете? Как поменять порядок сортировки? Например, есть закладка "Популярные". Что это такое "популярность" - просмотры, скачивания, отзывы, рейтинг? Похоже, ничто из этого. Однако хотелось бы сортировать по любому из указанных показателей. А на вкладке "Платные" напрашивается сортировка по цене.

Сортировки тоже нет сейчас. Продукты сортируются по каким-то своим критериям. Хорошо бы более мощный фильтр. По ценовому диапазону, в алфавитном порядке и т.д. Тоже можно в Сервисдеск написать в качестве предложения.
 
Как программно получить цвет линии, который пользователь задал в диалоге свойств индюка?
 
marketeer:
Как программно получить цвет линии, который пользователь задал в диалоге свойств индюка?

Не припомню такой фичи.

А зачем? может если сменить постановку вопроса, то и решение найдётся

ЗЫ а я понял чтоб менять одним кликом всю цветовую гамму. Ну введите цвет в параметры, и пусть пользователь меняет в параметрах.

 
marketeer:
Как программно получить цвет линии, который пользователь задал в диалоге свойств индюка?

PLOT_LINE_COLOR

 

Трудноуловимая ошибка

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(); 
}

Результат: value1=5, value2=8, а должно быть

                 value1=5, value2=5

Если убрать this. или убрать у A::set(..) приставку virtual или убрать функцию replace, путем переноса кода в 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);}

 то все нормально  

 
A100:

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

+ если запустить в дебаге, то все нормально.
в обычной компиляции - баг
 
Urain:

Не припомню такой фичи.

А зачем? может если сменить постановку вопроса, то и решение найдётся

ЗЫ а я понял чтоб менять одним кликом всю цветовую гамму. Ну введите цвет в параметры, и пусть пользователь меняет в параметрах.

Так сейчас и сделано. Это нонсенс, потому что цвета дублируются в параметрах и на выделенной закладке с цветами.

Необходимость простая - нужно поставить на графике метки, совпадающие по цвету с выбранными пользователями цветами линий.

Насколько я понимаю, Lizar ошибается, т.к. PLOT_LINE_COLOR, согласно документации, задает индекс буфера с номерами цветов раскраски (когда одна линия рисуется попеременно разными цветами). Мой вопрос с помощью этой константы не решается. 

 
marketeer:

...

Насколько я понимаю, Lizar ошибается, т.к. PLOT_LINE_COLOR, согласно документации, задает индекс буфера с номерами цветов раскраски (когда одна линия рисуется попеременно разными цветами). Мой вопрос с помощью этой константы не решается. 

Попробуйте вот так:

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

Так сейчас и сделано. Это нонсенс, потому что цвета дублируются в параметрах и на выделенной закладке с цветами.

Необходимость простая - нужно поставить на графике метки, совпадающие по цвету с выбранными пользователями цветами линий.

Насколько я понимаю, Lizar ошибается, т.к. PLOT_LINE_COLOR, согласно документации, задает индекс буфера с номерами цветов раскраски (когда одна линия рисуется попеременно разными цветами). Мой вопрос с помощью этой константы не решается. 

Неправда, решается.  Я вот согласовываю цвета буферов двух взаимосвязанных индикаторов через события:

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

Вызывается это событие (из другого индикатора), так:

      EventChartCustom(ChartID(),MYEVENT_PLOT_FILE,(long) PlotIndexGetInteger(0,PLOT_LINE_COLOR),0,FName);
Всё работает.
 
MetaDriver:

Неправда, решается.  

Спасибо, попробую. Но все же, где-нибудь в документации можно про это почитать? Я имею в виду, чтобы было написано, что PLOT_LINE_COLOR позволяет устанавливать и читать цвет обычного буфера, а не "многоцветного".