Errores, fallos, preguntas - página 1776
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Error de compilación
int f( const T& ) { return sizeof( T ); }
class A {};
void OnStart()
{
const A * const a = new A; //Error: 'T' - unexpected token
f( a );
}
En la Ayuda de Metatrader 4 sobre el indicador iGator()
[in] Источник данных, идентификатор одной из линий индикатора. Mожет быть любой из следующих величин:
MODE_GATORJAW - синяя линия (линия челюсти аллигатора),
MODE_GATORTEETH - красная линия (линия зубов аллигатора),
MODE_GATORLIPS - зеленая линия (линия губ аллигатора).
y a continuación un ejemplo
double diff=iGator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_UPPER,1);
Fuente de datos MODE_UPPER, entiendo que hay un error en la ayuda
Error de compilación (o más bien ningún mensaje de error)
A() { ::ArrayResize( i1, 1 ); }
int i1[ ];
int i2[1];
void f1() const { i1[0] = 0; } //нет сообщения ошибки
void f2() const { i2[0] = 0; } //Error: 'i2' - member of the constant object cannot be modified
};
He encontrado dos errores al procesar el evento de clic del botón del ratón.
1. Manejo del evento de clic de la rueda del ratón en OnChartEvent(). La idea es que la función genere el evento (id == CHARTEVENT_MOUSE_MOVE) cuando se pulse el botón izquierdo del ratón (con y sin mantenerlo), el botón derecho del ratón (con y sin mantenerlo), pero si se pulsa la rueda, el evento se generará sólo al mantenerla. Es decir, si se pulsa la tecla central y se suelta inmediatamente, no se generará el evento.
2. Tras procesar la pulsación del botón izquierdo del ratón (sparam == "1") se generará el evento sparam == "0". Después de pulsar el botón derecho del ratón (sparam == "2"), por alguna razón no se genera el evento sparam == "0". ¿No deberían manejarse todos los botones del ratón de la misma manera? No digo nada acerca de hacer clic en la rueda, porque, como he dicho en el punto 1 - no se genera ningún evento cuando se hace clic en la rueda.
Comprueba el código:
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
//| Обработка события графика |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
switch(id)
{
case CHARTEVENT_MOUSE_MOVE:
FuncMove(lparam,dparam,sparam);
break;
}
}
//+------------------------------------------------------------------+
//| Функция обработки события перемещения мыши |
//+------------------------------------------------------------------+
void FuncMove(const long lparam,// Х координата
const double dparam,// Y координата
const string sparam // Строковое значение статуса кнопки
)
{
Print(__FUNCTION__,": sparam = "+sparam);
}
//+------------------------------------------------------------------+
//| Функция деинициализации индикатора |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- Отписываемся от события передвижения мыши
ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,false);
}
//+------------------------------------------------------------------+
Error de compilación (o más bien ningún mensaje de error)
A() { ::ArrayResize( i1, 1 ); }
int i1[ ];
int i2[1];
void f1() const { i1[0] = 0; } //нет сообщения ошибки
void f2() const { i2[0] = 0; } //Error: 'i2' - member of the constant object cannot be modified
};
en la función f2, el estado del objeto A cambia, porque el array A::i2 no es dinámico - todos sus elementos pertenecen al objeto A
Error de compilación
class B {
int A() { return 0; }
void f( int ) {}
void g() { f(A()); } //Error: 'A' - invalid cast operation
};
Dratuti. Pregunta: ¿cómo puedo enviar un mensaje a un usuario con el que aún no he mantenido correspondencia en los navegadores móviles (android, apple)? He mirado desde varios dispositivos diferentes - en ninguna parte hay un botón "enviar un mensaje", así como "añadir a otros". La página del usuario se ve algo así, sin botones:
Llevo mucho tiempo diciéndolo. Hasta ahora no han dicho nada.
Se han encontrado dos errores en el manejo de eventos del botón del ratón.
Compruébalo.
Gracias, por favor compruebe el número de la primera barra visible en el gráfico: ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR );
La cuestión es que si se desactiva el desplazamiento del gráfico y se controla la última barra visible, en el momento de una nueva vela su número cambia por alguna razón, ¡aunque el gráfico no se mueve! El TF es M1 para poder comprobarlo más rápidamente. Empieza por el indicador:
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Подписываемся на событие движения мыши
ChartSetInteger( 0, CHART_EVENT_MOUSE_MOVE, true );
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
//| Обработка события графика |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
{
switch( id )
{
case CHARTEVENT_MOUSE_MOVE:
Print( __FUNCTION__," "+TimeToString( TimeCurrent(), TIME_DATE|TIME_SECONDS )+": sparam = "+sparam+", ",(int)ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR ));
break;
}
}