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

 
x572intraday #:

 Удалять так, как предлагаете, нет разумной возможности, так как начало префикса динамическое: либо {D1}, либо  {W1}, либо {MN1}, а уж потом идёт неизменяемый префикс в виде " l...". Можно поменять местами динамический и статический префиксы и спокойно удалять по Вашему варианту, но это неразумно, поскольку неудобно воспринимать информацию как "R1   {D1}", а удобнее "{D1}   R1". Всё это я давно продумал и сделал именно как сделал.

DrawTheLine("pref"+line_types[lt], St
 
Vitaly Muzichenko #:

 Всё-таки да, в принципе, можно и так. Выше я лихо объяснялся, думая в это время об:

ObjectSetString(0,tf+" "+LineType+" label",OBJPROP_TEXT,"{"+tf+"}   "+LineType);

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

 С другой стороны, в "Списке объектов" (Ctrl+b) желательно видеть и удобочитаемые имена объектов, так что всё же предпочтительнее мой вариант. Плюс ко всему, бывают случаи, когда имена объектов вынуждены быть предельно длинными, так что лишние "pref_" будут совершенно недопустимыми.
 
x572intraday #:

 Всё-таки да, в принципе, можно и так. Выше я лихо объяснялся, думая в это время об:

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

 С другой стороны, в "Списке объектов" (Ctrl+b) желательно видеть и удобочитаемые имена объектов, так что всё же предпочтительнее мой вариант. Плюс ко всему, бывают случаи, когда имена объектов вынуждены быть предельно длинными, так что лишние "pref_" будут совершенно недопустимыми.

а если у кого-то на графике ещё будет стоять программа с графическими объектами, то ваш типа префикс "l" < где как раз и есть удаление по префиксу " l" (при создании объектов использовались имена " label" и " line" >

Убьёт все объекты начинающиеся на "l" в сторонней программе. Это не совсем хорошее решение

 
Vitaly Muzichenko #:

а если у кого-то на графике ещё будет стоять программа с графическими объектами, то ваш типа префикс "l" < где как раз и есть удаление по префиксу " l" (при создании объектов использовались имена " label" и " line" >

Убьёт все объекты начинающиеся на "l" в сторонней программе. Это не совсем хорошее решение

Виталий, а не уйти-ли вам в тему для начинающих? Эти азы более-менее программист знает уже давно. И только «звёздные» не все знают…

 
Alexey Viktorov #:

Виталий, а не уйти-ли вам в тему для начинающих? Эти азы более-менее программист знает уже давно. И только «звёздные» не все знают…

Шикарно!

Да, пойду наверное :)

 
Vitaly Muzichenko #:

а если у кого-то на графике ещё будет стоять программа с графическими объектами, то ваш типа префикс "l" < где как раз и есть удаление по префиксу " l" (при создании объектов использовались имена " label" и " line" >

Убьёт все объекты начинающиеся на "l" в сторонней программе. Это не совсем хорошее решение

 Об этом я тоже думал. Есть вероятность, что другой программист наклепает идентичные имена объектов или имена с таким же префиксом, поэтому удаление объектов по префиксу (особенно короткому) опаснее, чем вероятность наткнуться и удалить полностью совпадающий по имени объект. Надо также иметь в виду, что вторая программа не сможет создать второй объект с уже существующим именем, должен остаться прежний объект (по-моему). В любом случае соседняя программа, решившая удалить такой объект, полагая, что это её объект, удалит чужой с тем же именем.

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

 
x572intraday #:

 Об этом я тоже думал. Есть вероятность, что другой программист наклепает идентичные имена объектов или имена с таким же префиксом, поэтому удаление объектов по префиксу (особенно короткому) опаснее, чем вероятность наткнуться и удалить полностью совпадающий по имени объект. Надо также иметь в виду, что вторая программа не сможет создать второй объект с уже существующим именем, должен остаться прежний объект (по-моему). В любом случае вторая программа, решившая удалить такой объект, полагая, что это её объект, удалит чужой с тем же именем.

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

Мне не нужно напоминать, Я с графическими объектами работаю каждый день.

Неверно составленная логика - залог ... чего? Верно, залог провала. Это ваш случай.

 
Vitaly Muzichenko #:

Мне не нужно напоминать, Я с графическими объектами работаю каждый день.

Неверно составленная логика - залог ... чего? Верно, залог провала. Это ваш случай.

 И в чём провал?

 А напоминаю, в общем-то, не Вам (у нас не приватная переписка), а читающей нас публике, среди которой наверняка есть дилетанты.
 
x572intraday #:

 И в чём провал?

Я уже описал, но выбор за вами.

Понимаю, вы вложили много сил в написание, поэтому для вас эта программа ценна и правильна. Но в ней есть недочёты, и даже критические, которые вам сложно принять.

Всё, разбирайтесь дальше сами, свою оценку описал.

 
Vitaly Muzichenko #:

Я уже описал, но выбор за вами.

 Я Вас всесторонне разубеждал, признав Вашу правоту лишь в паре мелких некритичных моментов. Но если Вас это не впечатлило и не разубедило, понимаю — сложно принять контраргументы прямиком от автора кода.