Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 217
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ммм, может быть
Вы пока первый у кого этого нет))
Но это неважно, может же выскочить у кого угодно - значит надо править, к сожалению
Может зависит от версии МТ4 (у меня от альпари), у вас какая если не секрет?
у меня их много от разных, я же под них всякое программирую :-) но софт всё равно один и тот-же, они отличаются только минимальным брендингом и мелкими фичами в индикаторах/советниках..
PS/ фокусы с цветами могут быть от неверно выставленного DPI монитора, наличия "утилит корректирующих цветовую температуру", "игровых расширений видеокарты". И прочая-прочая.
PPS/ кстати ни один DC не осилил (скорее по деньгам, от жадности) собственный пакет индикаторов/советников/скриптов/тулзов. Максимум - убогая панель в корпоративных цветах. Что как-бы намекает
Здравствуйте!
Не подскажете почему OBJPROP_XSIZE выдаёт 0?
Здравствуйте!
Не подскажете почему OBJPROP_XSIZE выдаёт 0?
OBJ_LABEL весьма специфичный объект - после размещения и до первого обновления чарта, ширина (X_SIZE) не определена.
она вообще зависит от шрифта, dpi экрана. Пока не сработали полностью функции отрисовки, про реальную ширину сказать ничего нельзя
OBJ_LABEL весьма специфичный объект - после размещения и до первого обновления чарта, ширина (X_SIZE) не определена.
она вообще зависит от шрифта, dpi экрана. Пока не сработали полностью функции отрисовки, про реальную ширину сказать ничего нельзя
Попробуйте сделать перерисовку, а после уже проверять
Попробуйте сделать перерисовку, а после уже проверять
Спасибо, попробую!
Не получилось.OBJ_LABEL весьма специфичный объект - после размещения и до первого обновления чарта, ширина (X_SIZE) не определена.
она вообще зависит от шрифта, dpi экрана. Пока не сработали полностью функции отрисовки, про реальную ширину сказать ничего нельзя
Спасибо, идея понятна, буду что-то экспериментировать.
Спасибо, идея понятна, буду что-то экспериментировать.
ChartRedraw не производит непосредственную перерисовку , он просто где-то в недрах терминала ставит флажок "чарт надо-бы перерисовать при первой возможности"
чтобы узнать какая ширина (должна) получиться у текстовой метки можно попробовать функции TextSetFont, TextGetSize - существенное различие может возникнуть только при HiDPI. А может и не возникнуть :-) не пробовал
или получить ширину реального OBJ_LABEL уже в следующий тик/чарт_эвент, то есть точно после перерисовки
ChartRedraw не производит непосредственную перерисовку , он просто где-то в недрах терминала ставит флажок "чарт надо-бы перерисовать при первой возможности"
чтобы узнать какая ширина (должна) получиться у текстовой метки можно попробовать функции TextSetFont, TextGetSize - существенное различие может возникнуть только при HiDPI. А может и не возникнуть :-) не пробовал
или получить ширину реального OBJ_LABEL уже в следующий тик/чарт_эвент, то есть точно после перерисовки
Спасибо уже всё получилось! Добавил OnDeinit(), там поставил задержку, а потом уже OBJPROP_XSIZE.
П.С. Только с задержкой в скрипте я не придумал не чего лучше чем:
for(int i=100000000; i>0; i--) {}
Спасибо уже всё получилось! Добавил OnDeinit(), там поставил задержку, а потом уже OBJPROP_XSIZE.
П.С. Только с задержкой в скрипте я не придумал не чего лучше чем:
// задержка 500 милисекунд, годная для тестера
ulong timestamp=GetTickCount64();
do {
Sleep(500/4); // в тестере не сработает, зато спасёт GetTickCount
} while(GetTickCount64()-timestamp<500);
// задержка 500 милисекунд, годная для тестера
ulong timestamp=GetTickCount64();
do {
Sleep(500/4); // в тестере не сработает, зато спасёт GetTickCount
} while(GetTickCount64()-timestamp<500);
Спасибо, получилось!