¡Buenas tardes a todos! Perdón por la pregunta tonta. Chicos, ¿podrían decirme cómo hacer que la propiedad Pressed de un botón sea true cuando se hace clic con el botón izquierdo y false cuando se hace clic con el botón izquierdo? Ahora la situación es tal, que no pasa nada al pulsarlo, y al soltarlo Pulsado cambia su valor al contrario.
Entiendo que tengo que anular los manejadores de eventos CButton::OnMouseUp y CButton::OnMouseDown, pero no tengo ni idea de dónde hacerlo. Una pista, por favor. Gracias de antemano.
Si alguien puede ayudar con el mismo tema, se agradecería.
¿No estás confundiendo las cosas? Hay un eventoCHARTEVENT_CLICK- un clic del ratón en un gráfico; pero no un clic...
Lo hay, es cierto. Es que la clase CButton tiene dos manejadores de eventos internos: OnMouseDown() y OnMouseUp(). Así que pensé, ¿tal vez también hay eventos correspondientes?
Sí, así es. Es que la clase CButton tiene dos manejadores de eventos internos: OnMouseDown() y OnMouseUp(). Así que pensé, ¿tal vez también hay eventos correspondientes?
No he mirado la SB, pero aparentemente hay una prensa OBJPROP_STATE == true, la otra OBJPROP_STATE == false. O tal vez me equivoque.
Los editores de MT4 y MT5 se bloquean al pasar el ratón por encima de "func" en la línea "int i = func( 0, 1 );" y al seleccionar la opción "Ir a la definición" (o al pulsar Alt+G)
MQL4 build 1910
MQL5 build 1931
template<typename type>
type func( type a, type b = 1 ){ return ( 0 ); }
int i = func( 0, 1 );
voidOnStart(){ }
No en MQL, al menos ya no. En realidad es el doble de lento que la referencia en la depuración, y lo suficientemente cerca de lo mismo cuando se compila normalmente que realmente no importa. Pruébelo usted mismo.
#define ITERATIONS 1000000voidOnStart()
{
{
ulong time = GetMicrosecondCount();
ulong sum = 0;
for(int i=0; i<ITERATIONS; i++){
string r = string(rand());
sum += by_ref(r);
}
time = GetMicrosecondCount() - time;
printf("%s took %.3f milliseconds: sum=%dll", "by_ref", time/1000.0, sum);
}{
ulong time = GetMicrosecondCount();
ulong sum = 0;
for(int i=0; i<ITERATIONS; i++)
sum += by_val(string(rand()));
time = GetMicrosecondCount() - time;
printf("%s took %.3f milliseconds: sum=%dll", "by_val", time/1000.0, sum);
}
}
//+------------------------------------------------------------------+int by_ref(string &var){ returnint(var) % 100; }
int by_val(string var){ returnint(var) % 100; }
¡Camaradas desarrolladores!
En MT4, al hacer clic en el objeto gráfico seleccionado se activa el evento"CHARTEVENT_OBJECT_DRAG". Esto es un verdadero error.
En mt5 no existe ese problema.
¡Buenas tardes a todos! Perdón por la pregunta tonta. Chicos, ¿podrían decirme cómo hacer que la propiedad Pressed de un botón sea true cuando se hace clic con el botón izquierdo y false cuando se hace clic con el botón izquierdo? Ahora la situación es tal, que no pasa nada al pulsarlo, y al soltarlo Pulsado cambia su valor al contrario.
Entiendo que tengo que anular los manejadores de eventos CButton::OnMouseUp y CButton::OnMouseDown, pero no tengo ni idea de dónde hacerlo. Una pista, por favor. Gracias de antemano.
Si alguien puede ayudar con el mismo tema, se agradecería.
Si alguien puede ayudar con el mismo tema, se agradecería.
El evento sólo se genera cuando se pulsa el botón del ratón, pero no cuando
El evento se genera sólo cuando se pulsa el botón del ratón, no cuando se hace clic
Pero hay un manejador de clics, ¿no? Así que debe haber un evento de clic.
Pero hay un manipulador de prensa, ¿no? Así que también debe haber un evento de prensa.
¿No estás confundido? Existe el evento CHARTEVENT_CLICK - un clic del ratón en el gráfico; pero no un clic...
¿No estás confundiendo las cosas? Hay un evento CHARTEVENT_CLICK - un clic del ratón en un gráfico; pero no un clic...
Lo hay, es cierto. Es que la clase CButton tiene dos manejadores de eventos internos: OnMouseDown() y OnMouseUp(). Así que pensé, ¿tal vez también hay eventos correspondientes?
Sí, así es. Es que la clase CButton tiene dos manejadores de eventos internos: OnMouseDown() y OnMouseUp(). Así que pensé, ¿tal vez también hay eventos correspondientes?
No he mirado la SB, pero aparentemente hay una prensa OBJPROP_STATE == true, la otra OBJPROP_STATE == false. O tal vez me equivoque.
Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio
¿El equivalente en MQL al tipo None de Python?
nicholi shen, 2018.10.28 21:52
No en MQL, al menos ya no. En realidad es el doble de lento que la referencia en la depuración, y lo suficientemente cerca de lo mismo cuando se compila normalmente que realmente no importa. Pruébelo usted mismo.
¿Por qué by_ref es más lento que by_val?