//+------------------------------------------------------------------+//| Comprueba si el estado del botón izquierdo del ratón ha cambiado.//+------------------------------------------------------------------+bool CMouse::CheckChangeLeftButtonState(conststring mouse_state)
{
bool left_button_state=(bool)int(mouse_state);
//--- Enviar un mensaje sobre el cambio de estado del botón izquierdo del ratónif(m_left_button_state!=left_button_state)
::EventChartCustom(m_chart.ChartId(),ON_CHANGE_MOUSE_LEFT_BUTTON,0,0.0,"");
//--- Devuelve el estado actual del botón izquierdo del ratónreturn(left_button_state);
}
//+------------------------------------------------------------------+
Aquí pasamos sparam y, según tengo entendido, cualquier valor distinto de cero se trata como un botón del ratón pulsado. Pero los valores distintos de cero los dan todos los botones del ratón, más Shift y Control al menos.
Aquí pasamos sparam y, según tengo entendido, cualquier valor distinto de cero se trata como un botón del ratón pulsado. Pero los valores distintos de cero los dan todos los botones del ratón, más Shift y Control al menos.
¿Es así como se pretendía?
No, era sólo una solución temporal para mis tareas personalizadas.
Ni siquiera parece ser utilizado en cualquier parte de la biblioteca en este momento. Se puede refinar si es necesario.
No, sólo era una solución temporal para mis tareas personalizadas.
Ni siquiera parece ser utilizado en cualquier parte de la biblioteca en absoluto en este momento. Se puede perfeccionar si es necesario.
Se utiliza muy a menudo :) Por ejemplo, arrastre de ventanas, deslizamiento rápido de SpinEdit. En cualquier lugar donde se compruebe el estado del LKM.
Lo hice así
//+------------------------------------------------------------------+//| Comprueba si el estado del botón izquierdo del ratón ha cambiado.//+------------------------------------------------------------------+bool CMouse::CheckChangeLeftButtonState(conststring mouse_state)
{
bool left_button_state=((int)mouse_state==1);//--- Enviar un mensaje sobre el cambio de estado del botón izquierdo del ratónif(m_left_button_state!=left_button_state)
::EventChartCustom(m_chart.ChartId(),ON_CHANGE_MOUSE_LEFT_BUTTON,0,0.0,"");
//--- Devuelve el estado actual del botón izquierdo del ratónreturn(left_button_state);
}
//+------------------------------------------------------------------+
¡El problema parece ser que estoy mirando ejemplos en versiones antiguas!
class CProgram : public CWndEvents
{
protected:
//--- Contadores de tiempo
CTimeCounter m_counter1; // para actualizar el proceso de ejecución
CTimeCounter m_counter2; // para actualizar los elementos de la barra de estado//--- Ventana principal
CWindow m_window;
//--- Imagen
CPicture m_picture1;
//--- Menú principal y sus menús contextuales
CMenuBar m_menubar;
CContextMenu m_mb_contextmenu1;
//--- Tabla de dibujo//CCanvasTable m_canvastable;//--- Cadena de estado
CStatusBar m_status_bar;
О том, для чего предназначена эта библиотека, более подробно можно прочитать в самой первой статье: Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1). В конце статей каждой части представлен список глав со ссылками. Там же есть возможность загрузить к себе на компьютер полную версию библиотеки на текущей стадии разработки...
Share, % de crecimiento para el día, a continuación, los datos estándar, los volúmenes a comprar desde el comienzo del día BuyVol, los volúmenes a vender SellVol, VolDelta diferencia en los volúmenes desde el comienzo del día, voy a terminar el % de la diferencia actual en los volúmenes.
delta verde - es deseable mantener la compra, o tratar de buscar un punto de entrada de compra, etc.
Una vez que la biblioteca fue muy rediseñado, no recuerdo el número de compilación. Lo más probable es que no haya CCanvasTable en las nuevas builds :)
En las conclusiones en los artículos hay un esquema general de la librería en el momento del release, puedes comparar.
string m_header_text; // Texto de cabecera de columnacolor m_header_color; // Color del texto de cabecera de columna //André
CTCell m_rows[]; // Matriz de las filas de la tabla
----------------------------------------------------------------------------------------------------------------------
void HeadersColorPressed(constcolor clr) { m_headers_color_pressed=clr; }
//void CabecerasTextoColor(const color clr){ m_headers_text_color=clr; } //André
----------------------------------------------------------------------------------------------------------
void SetHeaderText(constuint column_index,conststring value);
//--- Ajuste del color del texto a la cabecera especificada //Andrévoid HeadersTextColor(constcolor &array[]);
--------------------------------------------------------------------------------------------------------------------
//André //+------------------------------------------------------------------+//| Rellena el array de modos de alineación de texto ||//+------------------------------------------------------------------+void CTable::HeadersTextColor(constcolor &array[])
{
int total=0;
//--- Dejar, si se pasó un array de tamaño ceroif((total=CheckArraySize(array))==WRONG_VALUE)
return;
//--- Almacena el valor en el arrayfor(int c=0; c<total; c++)
m_columns[c].m_header_color=array[c];
}
------------------------------------------------------------------------------------------------------------------------
//André//--- Color del textouint clr=::ColorToARGB(m_columns[c].m_header_color);
En el archivo Window.mqh
//--- Manejar el incluso de hacer clic en los botones del formularioif(id==CHARTEVENT_CUSTOM+ON_CLICK_BUTTON)
{
//Andréif(StringFind(sparam, CElementBase::ProgramName(), 0)<0)
return;
//--- Cerrar la ventana
-------------------------------------------------------------------------------
int subwin=(CElementBase::ProgramType()==PROGRAM_INDICATOR)? ::ChartWindowFind() : m_subwin;
//--- Enviar un mensaje al respecto//André//Print(__FUNCTION__, " " ", subwin, " ", NOMBRE_PROGRAMA);//::EventChartCustom(m_chart_id,ON_WINDOW_COLLAPSE,CElementBase::Id(),subwin,"");
::EventChartCustom(m_chart_id,ON_WINDOW_COLLAPSE,CElementBase::Id(),subwin, PROGRAM_NAME);
//--- Enviar un mensaje sobre el cambio en la interfaz gráfica
::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
}
---------------------------------------------------------------------------------------
int subwin=(CElementBase::ProgramType()==PROGRAM_INDICATOR)? ::ChartWindowFind() : m_subwin;
//--- Enviar un mensaje al respecto//André//::EventChartCustom(m_chart_id,ON_WINDOW_EXPAND,CElementBase::Id(),subwin,"");
::EventChartCustom(m_chart_id,ON_WINDOW_EXPAND,CElementBase::Id(),subwin,PROGRAM_NAME);
//--- Enviar un mensaje sobre el cambio en la interfaz gráfica
::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
En el archivo WndEvents.mqh.
return(false);
//--- Si el identificador de ventana y el número de subventana coinciden//Andréif(m_sparam!=m_windows[0].ProgramName())
return(false);
if(m_lparam==m_windows[0].Id() && (int)m_dparam==m_subwin)
He comentado las líneas con mi nombre para facilitar la localización
Adjunto los archivos con el código completo modificado.
Buenas noches.
Mouse.mqh.
Aquí pasamos sparam y, según tengo entendido, cualquier valor distinto de cero se trata como un botón del ratón pulsado. Pero los valores distintos de cero los dan todos los botones del ratón, más Shift y Control al menos.
¿Es esta la forma en que se pretende?
Buenas noches.
Mouse.mqh
Aquí pasamos sparam y, según tengo entendido, cualquier valor distinto de cero se trata como un botón del ratón pulsado. Pero los valores distintos de cero los dan todos los botones del ratón, más Shift y Control al menos.
¿Es así como se pretendía?
No, era sólo una solución temporal para mis tareas personalizadas.
Ni siquiera parece ser utilizado en cualquier parte de la biblioteca en este momento. Se puede refinar si es necesario.
No, sólo era una solución temporal para mis tareas personalizadas.
Ni siquiera parece ser utilizado en cualquier parte de la biblioteca en absoluto en este momento. Se puede perfeccionar si es necesario.
Lo hice así
No, sólo era una solución temporal para mis tareas personalizadas.
Ni siquiera parece ser utilizado en cualquier parte de la biblioteca en absoluto en este momento. Puede ser refinado si es necesario.
En la última versión - https://www.mql5.com/es/code/19703
no se puede añadir
//CCanvasTable m_canvastable;¡El problema parece ser que estoy mirando ejemplos en versiones antiguas!
En la última versión - https://www.mql5.com/es/code/19703
falla al añadir
El problema parece ser que estoy mirando ejemplos de versiones anteriores.
¡Tengo la versión Build 10 , https://www.mql5.com/es/articles/3042 funciona allí!
Tuve que hacer algo como esto, que no es bueno.
MQL5\Include\EasyAndFastGUI_B10
MQL5/Include/EasyAndFastGUI_B16
¡Maravillosa biblioteca!
Hice un indicador simple pero útil para MICEX.
Share, % de crecimiento para el día, a continuación, los datos estándar, los volúmenes a comprar desde el comienzo del día BuyVol, los volúmenes a vender SellVol, VolDelta diferencia en los volúmenes desde el comienzo del día, voy a terminar el % de la diferencia actual en los volúmenes.
delta verde - es deseable mantener la compra, o tratar de buscar un punto de entrada de compra, etc.
Tengo la versión Build 10, https://www.mql5.com/es/articles/3042 funciona.
Tuve que hacer algo como esto, que no es bueno.
MQL5\Include\EasyAndFastGUI_B10
MQL5\Include\EasyAndFastGUI_B16.
Gracias por el mensaje. De momento no tengo tiempo. Veré un poco más tarde cual puede ser el problema.
Tengo la versión Build 10, https://www.mql5.com/es/articles/3042 funciona.
Tuve que hacer algo como esto, que no es bueno.
MQL5\Include\EasyAndFastGUI_B10
MQL5/Include/EasyAndFastGUI_B16
Una vez que la biblioteca fue muy rediseñado, no recuerdo el número de compilación. Lo más probable es que no haya CCanvasTable en las nuevas builds :)
En las conclusiones en los artículos hay un esquema general de la librería en el momento del release, puedes comparar.
¿No es posible colorear una columna utilizando la función de tabla?
Si añades dos indicadores.
Soy de Brasil, utilicé un traductor para escribir. Pido disculpas por cualquier error en este idioma.
En el archivo Table.mqh
En el archivo Window.mqh
En el archivo WndEvents.mqh.
He comentado las líneas con mi nombre para facilitar la localización
Adjunto los archivos con el código completo modificado.
Espero que os haya servido de ayuda