Al especificar el tipo de datos de la celda, especifique cuántos caracteres después del punto decimal debe dibujar:
...
Ahora también puede especificar el número de decimales:
//+------------------------------------------------------------------+//| Rellena el array por los índices especificados ||//+------------------------------------------------------------------+void CTable::SetValue(constuint column_index,constuint row_index,conststring value="",constuint digits=0,constbool redraw=false)
{
//--- Comprueba si está fuera de rangoif(!CheckOutOfRange(column_index,row_index))
return;
//--- Establece el valor en un array:// Cadenaif(m_columns[column_index].m_data_type==TYPE_STRING)
m_columns[column_index].m_rows[row_index].m_full_text=value;
//--- Realelseif(m_columns[column_index].m_data_type==TYPE_DOUBLE)
{
m_columns[column_index].m_rows[row_index].m_digits=digits;
double type_value=::StringToDouble(value);
m_columns[column_index].m_rows[row_index].m_full_text=::DoubleToString(type_value,digits);
}
//--- Tiempoelseif(m_columns[column_index].m_data_type==TYPE_DATETIME)
{
datetime type_value=::StringToTime(value);
m_columns[column_index].m_rows[row_index].m_full_text=::TimeToString(type_value);
}
//--- Cualquier otro tipo se establecerá como cadenaelse
m_columns[column_index].m_rows[row_index].m_full_text=value;
//--- Ajusta y guarda el texto si no cabe en la celda
m_columns[column_index].m_rows[row_index].m_short_text=CorrectingText(column_index,row_index);
//---Redibujar la celda si se especificaif(redraw)
RedrawCell(column_index,row_index);
}
Ahora también puede especificar el número de decimales:
sí, pero cuando introduces un punto decimal en el campo de entrada, entonces todo lo que hay después del punto decimal se descarta, ¡tuve que modificarlo un poco!
Andrii Djola: También me he encontrado con este problema al llamar a la función Rebuild, las imágenes de los botones no se dibujan
Esto se debe a que en el método CTable::Rebuilding() se borran todas las celdas y se crean otras nuevas. Por lo tanto, después de reconstruir la tabla, todas las celdas deben ser rellenadas con datos de nuevo.
Andrii Djola:
Sí, pero cuando se introduce un valor con una comaen el campo de entrada, entonces todo lo que hay después de la coma se descarta, ¡tuve que modificarlo un poco!
Sí.
De hecho, sí. Recuerdo algo así... Ahora sólo tengo que recordar lo que he cambiado :)
Creo que añadí esto. Claves.mqh
...
Creo que estaba añadiendo esto. Claves.mqh
Añadido a la última actualización de la biblioteca. Estará disponible en el próximo artículo como un apéndice.
Además, hay algunas actualizaciones para las tablas en la clase CTable.
La última versión de esta clase se puede descargar en este artículo: Visualización de resultados de optimización por criterio seleccionado
Un poco más tarde se añadirá a la última versión de la biblioteca que se encuentra en la base de código: EasyAndFast
Añadido a la última actualización de la biblioteca. Estará disponible en el próximo artículo como un apéndice.
Además, hay algunas actualizaciones para las tablas en la clase CTable.
La última versión de esta clase puede descargarse en este artículo: Visualización de resultados de optimización por criterio seleccionado
Un poco más tarde, se añadirá la última versión de la biblioteca que está en la base de código: EasyAndFast
si es posible, por favor, añada esta característica:
Al especificar el tipo de datos de la celda, especificar cuántos caracteres después del punto decimal hay que dibujar:
Ejemplo: m_table.DataType(columna,TYPE_DOUBLE,2);
o especifique el número de caracteres en una función separada
Ejemplo: m_table.DataDigits(columna,2);
si es posible, añada más funciones de este tipo:
Al especificar el tipo de datos de la celda, especifique cuántos caracteres después del punto decimal debe dibujar:
...
Ahora también puede especificar el número de decimales:
Ahora también puede especificar el número de decimales:
sí, pero cuando introduces un punto decimal en el campo de entrada, entonces todo lo que hay después del punto decimal se descarta, ¡tuve que modificarlo un poco!
¡¡¡¡pero has hecho un trabajo tremendo!!!!
También me he encontrado con este problema al llamar a la función Rebuild, las imágenes de los botones no se dibujan
Esto se debe a que en el método CTable::Rebuilding() se borran todas las celdas y se crean otras nuevas. Por lo tanto, después de reconstruir la tabla, todas las celdas deben ser rellenadas con datos de nuevo.
Andrii Djola:
Sí, pero cuando se introduce un valor con una comaen el campo de entrada, entonces todo lo que hay después de la coma se descarta, ¡tuve que modificarlo un poco!
Muéstrame en detalle lo que quieres decir.
Los relleno con la misma función que utilicé para crear la tabla, pero no hace ningún dibujo.
Muéstrame lo que estás haciendo y cómo lo estás haciendo. Sin verlo, es difícil sugerir algo.
Muéstrame lo que haces y cómo lo haces. Sin verlo, es difícil decirte nada.
He borrado este código, pero si puedo reproducirlo, ¡lo publicaré aquí!