Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, возможно ли сохранить положение кнопки при закрытии терминала?
т.е если кинуть индюк на график и нажать 2 (справа на клавиатуре) покажется число, при повторном нажатии это число удалится
так вот, если нажать 2 --> число отобразится, далее если закрыть терминал и открыть его заного это число будет в первоначальном положении т.е его не будет!
Возможно ли сохранить/запомнить что перед закрытие число было показано, короче я думаю вы поняли о чем я. Такое возможно сделать или же нет? Если да то как!?
Спасибо
А не надо ничего сохранять. Графические объекты сами сохраняют свое состояние. Достаточно не удалять объекты с графика.
Надо в функции Deinint() в зависимости от причины закрытия удалять или не удалять кнопку:
В справке почитайте при причины деинициализации, определитесь в каких случаях будете оставлять кнопку, в каких удалять.
В OnInit() проверять, существует ли кнопка на графике. Если существует - считать ее значение, для этого используется функция ObjectGetInteger() с идентификатором OBJPROP_STATE.
А не надо ничего сохранять. Графические объекты сами сохраняют свое состояние. Достаточно не удалять объекты с графика.
Надо в функции Deinint() в зависимости от причины закрытия удалять или не удалять кнопку:
В справке почитайте при причины деинициализации, определитесь в каких случаях будете оставлять кнопку, в каких удалять.
В OnInit() проверять, существует ли кнопка на графике. Если существует - считать ее значение, для этого используется функция ObjectGetInteger() с идентификатором OBJPROP_STATE.
Спасибо что отписались,
подскажите что не правильно я сделал в OnInit()
Весь код теперь выглядит так:
я говорил про кнопку, подразумеваю то что, чтобы получить это текстовую метку нужно нажать на кнопку на клавиатуре! у меня затруднения в том что при выключении терминала текстовая метка пропадает, как я думаю т.к она не создана в калькуляторе! вот и спрашиваю что в данном случае можно сделать, я не прошу за меня написать, как выразились выше, я хочу понять почему именно так происходит!
В калькуляторе это где???
Если метку надо удалять только по нажатию на кнопку, то зачем в OnDeinit поставлено удаление??? Здесь и решение всех ваших проблем.
Кнопку нажал, проверил наличие метки, нету - метка создана.
Кнопку нажал, метка есть её надо удалить.
При закрытии терминала ничего не удаляется.
При загрузке терминала в OnInit проверка наличия метки: Есть\нету, следующее нажатие кнопки выполняет определённое условие.
В калькуляторе это где???
Если метку надо удалять только по нажатию на кнопку, то зачем в OnDeinit поставлено удаление???
Чтобы при удаление индикатора всё удалялось!
При загрузке терминала в OnInit проверка наличия метки: Есть\нету, следующее нажатие кнопки выполняет определённое условие.
У меня есть проверка в OnInit, есть текст или нет, но при закрытии терминала, и новом открытии текста нету! только если опять нажать кнопку, вот так, код приложил выше
Дмитрий вы вообще когда нибудь программировали?
Попробуйте словами рассказать что вы делаете в OnInit и OnDeinit.
Внимательно прочитайте в документации к каким объектам относится OBJPROP_STATE.
В процедуре PutLabel вы удаляете и сразу создаёте такой же объект. Просто проверьте на наличие объекта, а потом поменяйте необходимые параметры или если объекта нет создайте его. Привыкайте писать код сразу грамотно.
Спасибо что отписались,
подскажите что не правильно я сделал в OnInit()
Весь код теперь выглядит так:
Кажется вы показываете не то, что делаете на самом деле. В показанном коде нет смысле в переменной draw. Проще в OnChartEvent проверять есть объект или нет, и удалять его или создавать,
Вот здесь что-то неправильное:
Если объект существует или у объекта какое-то свойство чему-то там равно. Хот я бы не || надо, а && - объект существует и его свойство такое-то. Но тогда draw долно быть true, а после else - false.
Дмитрий Федосеев обрати внимание на тип объекта OBJ_LABEL, свойство OBJPROP_STATE относиться к объекту типа OBJ_BUTTON, второе условие всегда будет возвращать ошибку неправильный тип объекта.
Ну а если попытаться словами рассказать весь OnInit то получиться полная ерунда.
Проверяем существует ли объект Л, допустим терминал вернул нет не существует, но заодно проверим, а есть ли у не существующего объекта некие свойства которые заранее известно что эти свойства не могут быть у данного объекта! Ну даже не знаю смеяться или плакать.
Дмитрий Федосеев обрати внимание на тип объекта OBJ_LABEL, свойство OBJPROP_STATE относиться к объекту типа OBJ_BUTTON, второе условие всегда будет возвращать ошибку неправильный тип объекта.
Ну а если попытаться словами рассказать весь OnInit то получиться полная ерунда.
Проверяем существует ли объект Л, допустим терминал вернул нет не существует, но заодно проверим, а есть ли у не существующего объекта некие свойства которые заранее известно что эти свойства не могут быть у данного объекта! Ну даже не знаю смеяться или плакать.
Это здесь распространенная практика - у себя пишут одно, что-то не получается, хотят задать вопрос, но полностью код не показывают, считают его секретным. Поэтому код как-то видоизменяют, выдирают куски и только их показывают. Здесь требуется особый эвристический подход))
Был вопрос - "подскажите что не правильно я сделал в OnInit()"... а то, что там несуразица... мы же не думаем плохо о людях... это не несуразица, это режим секретности)))