Вопросы от "чайника" - страница 9

 
stringo:

А я не по этому вопросу выступал.

Сказано логи тестерного агента, значит логи тестерного агента. 

Ну сначала для опоздавших нужно указать где и что (на картинках желательно)...
 

Можно ли перетаскиванием заставить объект двигаться плавно по горизонтальной или вертикальной линии?

Хочу сделать типа скрола для графика. 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
kPVT:

Можно ли перетаскиванием заставить объект двигаться плавно по горизонтальной или вертикальной линии?

Хочу сделать типа скрола для графика. 

 Нашел скрипт, немного подправил:

#import "user32.dll"
bool      GetCursorPos(int &Pos[]);
bool      GetWindowRect(int hWnd,int &Pos[]);
#import
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int p[2];
   int rect[4];
   int hwnd=ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE);
   while(!IsStopped())
     {
      GetWindowRect(hwnd,rect);
      GetCursorPos(p);
      int X=p[0]-rect[0];
      int Y=p[1]-rect[1];
      string c="Глобальные координаты мыши x= "+p[0]+" y= "+p[1]+"\n"+
               "Координаты мыши в окне котировок x= "+X+" y= "+Y;
      Comment(c);
      Sleep(100);
     }
  }
//+------------------------------------------------------------------+

 Попробую использовать user32.dll для получения координат мыши чтобы скрол сделать плавным, должно получиться.

В общем хорошо бы иметь встроенные средства навигации по граф.объекту Chart. 

 
Вы смотрели пример в разделе Угол привязки ?
 
Rosh:
Вы смотрели пример в разделе Угол привязки ?

спасибо, уже нашел и удалил сообщение, но вы оказались быстрее:)

у меня возник другой вопрос, советник работает по OnTimer, а окно обновляется только со следующим тиком, с этим можно бороться? 

 
Olegts:

спасибо, уже нашел и удалил сообщение, но вы оказались быстрее:)

у меня возник другой вопрос, советник работает по OnTimer, а окно обновляется только со следующим тиком, с этим можно бороться? 

Окно в смысле объекты на графике?

ChartRedraw - принудительно перерисовывает график (скорей всего это должно помочь).

Документация по MQL5: Операции с графиками / ChartRedraw
Документация по MQL5: Операции с графиками / ChartRedraw
  • www.mql5.com
Операции с графиками / ChartRedraw - Документация по MQL5
 
Interesting:

Окно в смысле объекты на графике?

ChartRedraw - принудительно перерисовывает график (скорей всего это должно помочь).

вставил ChartRedraw(0); , окно именно нулевое и единственное, не помогает, обновляются объекты только после очередного тика, хотя Print() показывает изменение данных раз в секунду EventSetTimer(1)
 
Olegts:
вставил ChartRedraw(0); , окно именно нулевое и единственное, не помогает, обновляются объекты только после очередного тика, хотя Print() показывает изменение данных раз в секунду EventSetTimer(1)

Тогда как минимум нужно больше информации.

Что за объекты? Кто их создает и как (к примеру объекты могут создаваться/изменяться совой, а могут индюками)?

Да и ситуация в целом описана очень туманно.

 
Interesting:

Тогда как минимум нужно больше информации.

Что за объекты? Кто их создает и как (к примеру объекты могут создаваться/изменяться совой, а могут индюками)?

Да и ситуация в целом описана очень туманно.

//+------------------------------------------------------------------+
//|                                                    testClass.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"

//--- input parameters

input int Timer=1;


int Val=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(Timer);
   int height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
   int width=ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
   int step=0;
   step=step+30; CreateLabel(0,"EUR",CORNER_LEFT_UPPER,"",50,step);
   step=step+30; CreateLabel(0,"GBP",CORNER_LEFT_UPPER,"",50,step);
   
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
   ObjectDelete(0,"EUR");
   ObjectDelete(0,"GBP");
  
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
//void OnTick()
//  {
//---
//   
//  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   Val=Val+1;
   int EUR0=Val,EUR1=Val;
   
   int GBP0=Val,GBP1=Val;

     
   ObjectSetString(0,"EUR",OBJPROP_TEXT,"EUR: "+IntegerToString(EUR0)+" | "+IntegerToString(EUR1));
   ObjectSetString(0,"GBP",OBJPROP_TEXT,"GBP: "+IntegerToString(GBP0)+" | "+IntegerToString(GBP1));

   ChartRedraw(0);
//---
  }
//+------------------------------------------------------------------+

void CreateLabel(long   chart_id,
                 string name,
                 int    chart_corner,
                 string text_label,
                 int    x_ord,
                 int    y_ord)
  {
//---
   ObjectCreate(chart_id,name,OBJ_LABEL,0,0,0);
   ResetLastError();
   if(!ObjectSetInteger(chart_id,name,OBJPROP_CORNER,chart_corner))
      Print("Не удалось установить угол привязки для объекта ",
            name,", ошибка ",GetLastError());
   ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x_ord);
   ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y_ord);
   ObjectSetString(chart_id,name,OBJPROP_TEXT,text_label);
   }
 
Olegts:
Всё нормально обновляется, значения меняются каждую секунду.
Причина обращения: