文章 "图形界面 XI: 表格单元中的文本编辑框和组合框 (统合构建15)" - 页 3

 
Oleksii Chepurnyi:

是的。

事实上,是的我记得有这么一回事...现在我只需要记住我改了什么:)

我想我添加了这个。Keys.mqh

非常感谢!
 
Oleksii Chepurnyi:

...

我想我是在添加这个Keys.mqh

已添加到库的最新更新中。将在下一篇文章中作为附录提供。

此外,CTable 类中的表格也有一些更新。

该类的最新版本可在以下文章中下载:按所选标准优化结果的可视化

稍后将添加到最新版本的代码库中:EasyAndFast

 
Anatoli Kazharski:

已添加到图书馆的最新更新中。将在下一篇文章中作为附录提供。

此外,CTable 类中的表格也有一些更新。

该类的最新版本可在本文中下载:按所选标准可视化优化结果

稍后,将添加代码库中最新版本的库:EasyAndFast

如果可能,请添加此功能:

在指定单元格数据类型时,指定小数点后的字符数:

例如:m_table.DataType(column,TYPE_DOUBLE,2);

或在单独的函数中指定字符数

例:m_table.DataDigits(column,2);

 
Andrii Djola:

如果可能,请增加这样的功能:

在指定单元格数据类型时,指定小数点后的字符数:

...

现在还可以指定小数点 位数:

//+------------------------------------------------------------------+
//| 按指定的索引填充数组 ||
//+------------------------------------------------------------------+
void CTable::SetValue(const uint column_index,const uint row_index,const string value="",const uint digits=0,const bool redraw=false)
  {
//--- 检查是否超出范围
   if(!CheckOutOfRange(column_index,row_index))
      return;
//--- 将值设置为数组:
// 字符串
   if(m_columns[column_index].m_data_type==TYPE_STRING)
      m_columns[column_index].m_rows[row_index].m_full_text=value;
//--- 真实
   else if(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);
     }
//--- 时间
   else if(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);
     }
//--- 任何其他类型都将设置为字符串
   else
      m_columns[column_index].m_rows[row_index].m_full_text=value;
//--- 如果文本不适合单元格,则调整并保存文本
   m_columns[column_index].m_rows[row_index].m_short_text=CorrectingText(column_index,row_index);
//--- 重新绘制单元格(如果指定
   if(redraw)
      RedrawCell(column_index,row_index);
  }
 
Anatoli Kazharski:

现在,您还可以指定小数位数

是的,但当您在输入框 中输入小数点时,小数点后的所有内容都会被舍弃,因此我不得不稍作修改!

但你已经做得很好了!!!!

 
我在调用 重建功能 时也遇到了这个问题,按钮上的图片没有显示出来
 
Andrii Djola:
调用 重建函数 时,我还遇到了这个问题,按钮上的图像没有绘制出来。

这是因为在CTable::Rebuilding() 方法中,所有单元格都被删除,同时创建了新的单元格。因此,重建表格后,所有单元格都必须重新填充数据。

安德烈-乔拉

是的,但在 输入框中输入 带逗号的值时,逗号后的所有内容都会被丢弃,因此我不得不稍作修改!

请向我详细说明您的意思。

 
我使用与创建表格 时相同的函数来填充它们,但它没有绘制任何图片。
 
Andrii Djola:
我使用与创建表格相同的函数来填充它们,但它没有绘制任何图片。

让我看看你在做什么,怎么做的。没有亲眼所见,很难提出建议。

 
Anatoli Kazharski:

让我看看你在做什么,怎么做的。没有亲眼所见,我很难告诉你什么。

我删除了这段代码,但如果我能重现它,我会把它贴在这里!