Сортировка по ObjectName - страница 2

 
avatara >>:

вызывающему Ctrl+B

;)

Так пусть там и сортируется по щелчку на заголовке столбца "Имя".

 
Svinozavr >>:
Кстати, TheXpert, вы знали об этой особенности? )))

Нет )))).

Но, наученный горьким опытом, я стараюсь не пользоваться умолчаниями вообще, поэтому мне в принципе сортировка без разницы.

 

Продолжу запоздало удивляться.

Еще один момент по сортировке. Он касается удаления гр.объектов по маске. Иногда этим способом пользуются, чтобы удалить созданные индикатором объекты. (Я делаю по-другому: заношу имя объекта в массив, а потом, в цикле по массиву удаляю.) Так вот, если удалять объекты в цикле, считывая их имена от 0 до ObjectsTotal()-1, то удалится только половина! Т.е. после каждого удаления в итерации цикла список имен графических объектов ПЕРЕСТРАИВАЕТСЯ! Во как!

Если же удалять, перебирая имена от ObjectsTotal()-1 до 0, то все нормально.

Вот скриптик, создающий 10 объектов с именами от qqq0 до qqq9, а затем, в зависимости от параметра CreateDelete, уничтожающий их по маске "qq" перебором от 0 до 9 или от 9 до 0.

#property show_inputs

extern int CreateDelete=0; // 0- создать, 1- удалить в цикле от 0 до 9, 2- удалить в цикле от 9 до 0

void start()
  {
   int i;
   int ot=ObjectsTotal();
   string _n;

   switch(CreateDelete) {
      case 0: // создать
         for(i=0; i<10; i++) ObjectCreate("qqq"+DoubleToStr(i,0),OBJ_VLINE,0,Time[i],0);
         break;
      case 1: // удалить в цикле от 0 до 9
         for(i=0; i<ot; i++) {
            _n=ObjectName(i);
            if(StringFind(_n,"qq")>=0) ObjectDelete(_n);
           }
         break;
      case 2: // удалить в цикле от 9 до 0
         for(i=ot-1; i>=0; i--) {
            _n=ObjectName(i);
            if(StringFind(_n,"qq")>=0) ObjectDelete(_n);
           }
     }
  }

Вот созданные объекты:

А вот результат удаления в цикле от 0 до 9 (CreateDelete=1) и вот список оставшихся. Удалена только половина.


При переборе в обратном порядке - удаляется все.

===

Чудны дела твои, Господи. Хотя, зная, что после каждого удаления происходит сортировка, результат становится понятен.

===

Может, я опять открываю Америку велосипедом, но, право, это все-таки не вполне очевидная вещь.

Скриптик на всякий случай прикрепляю...

Файлы:
 

Svinozavr писал(а) >>

...Может, я опять открываю Америку велосипедом, но, право, это все-таки не вполне очевидная вещь.

Верно, было такое обсуждение и не раз. Не так подробно, но с теми же результатами. Лень искать. S.K. отмечал эти фичи.

Причина обращения: