Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2711

 
Andrei Sokolov #:
чтоб объявленные внутри функции переменные были доступны по всему коду.

У вас крайне мало опыта в написании программ.

Вы представляете сколько будет конфликтов в программе ниже среднего уровня, уж не говоря о большом проекте.

 
Andrei Sokolov #:
В общем чтоб не писать отдельно список нужных имен вне функции.

Это и не нужно писать.

Создайте одну структуру, заполните её данными и получайте доступ в любом месте.

Работа со структурой облегчает работу и читаемость кода на ~80%

 
Vitaly Muzichenko #:

Это и не нужно писать.

Создайте одну структуру, заполните её данными и получайте доступ в любом месте.

Работа со структурой облегчает работу и читаемость кода на ~80%

Спасиб, но я пытаюсь писать меньше кода а не больше. 
 
Vitaly Muzichenko #:
У вас крайне мало опыта в написании программ.
Нет ты сам такой
 
Vitaly Muzichenko #:
Вы представляете сколько будет конфликтов в программе ниже среднего уровня, уж не говоря о большом проекте.
Тут, как и везде, все зависит от прямоты рук.
 
Andrei Sokolov #:
Тут, как и везде, все зависит от прямоты рук.

Именно это вам и сказал Артём

 
Vitaly Muzichenko #:
Работа со структурой облегчает работу и читаемость кода на ~80%

Без возможности поиска с учетом регулярных выражений мне работа со структурой часто осложняет работу.

Вот здесь писал пример https://www.mql5.com/ru/forum/417088/page17#comment_59193518

Сделайте регулярные выражения в метаэдиторе.
Сделайте регулярные выражения в метаэдиторе.
  • 2025.11.30
  • www.mql5.com
просто решил проверить сколько просмотров у них и на каком языке чаще читают. зашел к другим - все продолжают постить инструкции в блогах на разных языках. То удаляют без причины описания стратегий в блогах
 
Vitaly Muzichenko #:

Именно это вам и сказал Артём


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

Короче - если то что я спрашивал возможно или точно нет - то напишите, пж. Спасиб.
 

Посмотрел Вашу панель. Я подобные делал. Например, в моей панели было поле ввода лота. В изначальных настройках указывался лот, например input double Lot=0.1; (можно на глобальном уровне и без инпута). Затем при создании панели поле ввода лота инициализируется значением переменной Lot. Все дальнейшие обращения к лоту считываем из этого поля ввода (мало ли, трейдер по ходу торга рукам ввёл туда иной лот). В коде не сложно в начале программы составить список начальных параметров. Это устранит проблему поиска искажения областей видимости, сэкономит время и силы.

P.S.

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

P.P.S.

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

То есть получается, что в Вашем случае переменная вообще не нужна. Нужно помнить имена меток. Например, имя поля лота можно обозначить как Lbl_Lot (лейбл лот). А вот если Вы имена эти генерируете автоматически, то тут Вы приплыли. Это будет тупик. Ну, это конечно, если Вы заранее на глобальном уровне не объявите массив, в который Вы будете вносить сгенерированные имена. Но это приводит к вопросу: а нахрена такие сложности?

 
Andrei Sokolov #:

В роботе такая панель, в ней много полей ввода. Имена полей ввода формируются непосредственно перед созданием объекта, в котором содержится номер строки. 

В общем чтоб не писать отдельно список нужных имен вне функции.

Чтоб не писать кучу переменных использую массив. Удобно тем, что его всегда можно увеличить. С массивом удобно работать в цикле. 

Лучше массива, только массив структур.