Обсуждение статьи "Графические интерфейсы X: Расширенное управление списками и таблицами. Оптимизация кода (build 7)" - страница 6

 
Anatoli Kazharski:

Ну, тебе же не привыкать "взад-обратно переделывать". )

Возможно, на следующей неделе будет новая статья. Представлю первую версию многострочного поля ввода. В последующих статьях постепенно буду добавлять всё, что обсуждали в личке и на форуме.

Добавил бы методы ItemsSelectedTotal(); ItemsUnselectedTotal(); наряду с ItemsTotal();
 
Artyom Trishkin:
Добавил бы методы ItemsSelectedTotal(); ItemsUnselectedTotal(); наряду с ItemsTotal();

В списки CListView и CCheckBoxList?

Добавлю, но уже не в следующей статье. Итак довольно большая статья получится.

 
Anatoli Kazharski:

В списки CListView и CCheckBoxList?

Добавлю, но уже не в следующей статье. Итак довольно большая статья получится.

Да, в них. Хорошо, благодарствуем.
 

Толь, как программно узнать чекбокс какого пункта списка отмечен галочкой. Не щёлкая по нему.

Нужно загнать в массив все отмеченные галочками пункты списка.

Что-то туплю. Подскажи пожалуйста в каком направлении глядеть.

 
Artyom Trishkin:

Толь, как программно узнать чекбокс какого пункта списка отмечен галочкой. Не щёлкая по нему.

Нужно загнать в массив все отмеченные галочками пункты списка.

Что-то туплю. Подскажи пожалуйста в каком направлении глядеть.

CCheckBoxList::GetItemState()
 
Anatoli Kazharski:
CCheckBoxList::GetItemState()

Спасибо. Так и делал. В цикле от 0 до ItemsTotal() гонял. Там мой косяк был, потому и глючило.

Подскажи пожалуйста, а состояния чекбоксов сбрасываются при переключении таймфреймов?

Если да, то какие пути для обхода сего неприятного момента? (У меня сбрасываются - мож чего не того творю)

 
Artyom Trishkin:

Спасибо. Так и делал. В цикле от 0 до ItemsTotal() гонял. Там мой косяк был, потому и глючило.

Подскажи пожалуйста, а состояния чекбоксов сбрасываются при переключении таймфреймов?

Если да, то какие пути для обхода сего неприятного момента? (У меня сбрасываются - мож чего не того творю)

Нужно в файл писать. И читать при установке GUI. Это тема будущей статьи и до этого ещё далеко.

 
Anatoli Kazharski:

Нужно в файл писать. И читать при установке GUI. Это тема будущей статьи и до этого ещё далеко.

Уже делаю. Не дождался быстрого ответа ;)
 

Анатоль, пытаюсь в таблицу в таймере записывать в столбец с индексом 1 цены Bid символов, вписанные в строках таблицы в столбец 0:

//+------------------------------------------------------------------+
//| Таймер                                                           |
//+------------------------------------------------------------------+
void CProgram::OnTimerEvent(void)
  {
   CWndEvents::OnTimerEvent();
   //--- Пауза между обновлением списков и таблиц
   if(m_counter1.CheckTimeCounter()) {
      uint sz=m_table_main_symbol_list.RowsTotal();
      for(uint i=1; i<sz; i++) {
         string sy=m_table_main_symbol_list.GetValue(0,i);
         MqlTick tick;
         if(sy!=NULL && sy!="") {
            if(SymbolInfoTick(sy,tick)) {
               int dg=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS);
               m_table_main_symbol_list.SetValue(1,i,DoubleToString(tick.bid,dg),dg);
               m_table_main_symbol_list.TextColor(1,i,clrDimGray);
               //m_table_main_symbol_list.UpdateTable();
               }
            }
         }
      //--- Перерисовать график
      m_chart.Redraw();
      }
//--- Пауза между обновлением статусной строки
   if(m_counter2.CheckTimeCounter()) {

      //--- Перерисовать график
      m_chart.Redraw();
      }
  }
//+------------------------------------------------------------------+

Если делать без UpdateTable(), то никакие данные в ячейках таблицы не появляются. Если же обновлять таблицу каждый раз при получении нового тика, то с таблицей становится невозможно работать - мигает, выделенная строка моргает, и пр,пр.пр...

Как выйти из положения?

 
Artyom Trishkin:

Анатоль, пытаюсь в таблицу в таймере записывать в столбец с индексом 1 цены Bid символов, вписанные в строках таблицы в столбец 0:

... 

Если делать без UpdateTable(), то никакие данные в ячейках таблицы не появляются. Если же обновлять таблицу каждый раз при получении нового тика, то с таблицей становится невозможно работать - мигает, выделенная строка моргает, и пр,пр.пр...

Как выйти из положения?

Недостаточно данных для воспроизведения. Приложи полный пример, чтобы я мог у себя повторить.
Причина обращения: