Perguntas de um "boneco" - página 9

 
stringo:

Não era isso que eu estava a dizer.

Diz "registos de agente testador", significa registos de agente testador.

Bem primeiro, para os atrasados, é preciso especificar onde e o quê (de preferência em imagens)...
 

É possível fazer o objecto mover-se arrastando suavemente horizontalmente ou verticalmente?

Quero fazer uma espécie de pergaminho para um gráfico.

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

É possível fazer um objecto mover-se arrastando suavemente O objecto gráfico pode ser feito para se mover ao longo de uma linha horizontal ou vertical?

Quero fazer uma espécie de pergaminho para o gráfico.

Encontrou um guião, afinou-o um pouco:

#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);
     }
  }
//+------------------------------------------------------------------+

Vou tentar usar o user32.dll para obter coordenadas do rato para tornar a rolagem suave, deve funcionar.

Em geral, seria bom ter incorporado a navegação por objectos cartográficos.

 
Já viu o exemplo na secção Angle?
 
Rosh:
Olhou para o exemplo na secção Binding Angle?

Obrigado, já encontrou e apagou a mensagem, mas foi mais rápido:)

Tenho outra pergunta, a EA trabalha no OnTimer mas a janela só é actualizada com o próximo tick, isto pode ser resolvido?

 
Olegts:

Obrigado, já encontrou e apagou a mensagem, mas foi mais rápido:)

Tenho outra pergunta, a EA trabalha no OnTimer, mas a janela é actualizada apenas com o próximo tick, isto pode ser resolvido?

A janela no sentido dos objectos na carta?

ChartRedraw - desenhar de novo à força o gráfico (o mais provável é que isto ajude).

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

Janela no sentido dos objectos no gráfico?

ChartRedraw - reescreve à força o gráfico (isto deve provavelmente ajudar).

Coloco ChartRedraw(0); , a janela é exactamente zero e a única, não ajuda, os objectos são actualizados apenas após o próximo tick, embora Print() mostre a alteração dos dados uma vez por segundo EventSetTimer(1)
 
Olegts:
Coloco ChartRedraw(0); a janela é zero e a única, não ajuda, os objectos são actualizados apenas após o próximo tick, embora Print() mostre a mudança de dados uma vez por segundo EventSetTimer(1)

Então, no mínimo, é necessária mais informação.

Quais são os objectos? Quem os cria e como (por exemplo, os objectos podem ser criados/alterados por uma coruja ou por um indicador)?

E a situação em geral é descrita de modo muito vago.

 
Interesting:

Então, no mínimo, é necessária mais informação.

Quais são os objectos? Quem os cria e como (por exemplo, os objectos podem ser criados/modificados por coruja, ou por perus)?

E a situação geral é descrita de forma muito vaga.

//+------------------------------------------------------------------+
//|                                                    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:
Tudo se actualiza normalmente, os valores mudam a cada segundo.
Razão: