Передавайте массив, а не его элемент и жизнь наладится, имхенько.
tara:
Передавайте массив, а не его элемент и жизнь наладится, имхенько.
Передавайте массив, а не его элемент и жизнь наладится, имхенько.
Я это понимаю. Но как тогда логику выстроить? Хочу чтоб рисовало один графический элемент при необходимости. Вот получается что имеем в функции вызова:
for (int i=0; i<5; i++) { CDraw.DrawArrow (i, ZZ.GetZZExtremumTime(i), ZZ.GetZZExtremumPrice(i)); // Print ("ZZ.GetZZExtremumPrice(", i, ") = ", ZZ.GetZZExtremumPrice(i)); // Print ("ZZ.GetZZExtremumTime(", i, ") = ", ZZ.GetZZExtremumTime(i)); }
В сама функция вот:
void DrawGrafics::DrawArrow (int fi_Number, datetime& fdt_Time[], double& fd_Price[]) { string objName = StringConcatenate ("Это стрелочка!"); ObjectCreate (objName, OBJ_ARROW_UP, 0, fdt_Time[fi_Number], fd_Price[fi_Number]); // Перерисуем объект WindowRedraw(); }
Это тестовый вариант. Конечно будет ещё доработок прилично для реала, но пока что хочу запустить то что необходимо, дабы не гоордить излишний код.
Кстати, я передаю именно элемент массива:
//========================================================================================================================================= // 1.3 Получаем значение цены на заданном индексе экстремума double ZZOperations::GetZZExtremumPrice(int fi_Index) { return (ZZExtremumPrice[fi_Index]); } //========================================================================================================================================= // 1.4 Получаем значение времени на заданном индексе экстремума datetime ZZOperations::GetZZExtremumTime (int fi_Index) { return (ZZExtremumTime[fi_Index]); }
void DrawGrafics::DrawArrow (int fi_Number, datetime& fdt_Time, double& fd_Price)тока вот непонятно, если вы в метод передаете элемент массива, то зачем все это, ну или передавайте весь массив. а то как то по дебильному получается...
Полностью согласен. Переписал чутка иначе. Пока всё разделял по инклюдникам, налупил косяков. Теперь всё чётко. Вопрос снят.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пришлось начать писать инклюдник для работы с графикой. Кое-чего написал. На данный момент некоторые фигуры рисуются, а графики чистятся после деинициализации экпертов и при инициализации. Но вот решил я нарисовать стрелку, и появилась нелогичная ошибка.
Почему оно так пишет?
Вот OnTick(), в котором тестирую свой инклюдник:
По сути если раскомментить строку:
// Print ("ZZ.GetZZExtremumTime(", i, ") = ", ZZ.GetZZExtremumTime(i));
Видно, что формат и типа данного геттера возвращается верный:
Почему тогда ругается компилятор на данную переменную массива времени. И, именно со временем такая хрень, как я заметил происходит. С другими типами такого не бывало ещё.
Объявляется она верно:
Кстати, самое интересное, что ошибка компиляции возникает лишь тогда, когда вызывается функция CDraw.DrawArrow (i, dt[i], d[i]);
Вот её код:
Иначе не ругается (если её закомментить).