错误、漏洞、问题 - 页 2361

 
Artyom Trishkin:

也许它应该显示在特征中?

我将尝试设计它。

 
与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。
 

亲爱的网站设计者们。

以下是信息的截图,请告诉我目前选择的是哪个对话者


我的眼睛已经爬上了额头,想了解我在给谁写信 .....

请对那些你没有回复的人、那些你已经回复的人进行颜色编码,并对你正在发短信的人单独进行颜色编码 ...

 
Vladimir Pastushak:

亲爱的网站设计者们。

以下是信息的截图,请告诉我目前选择的是哪个对话者


我的眼睛已经爬上了额头,想了解我在给谁写信 .....

请对我没有回复的人用颜色编码,对我有回复的人用颜色编码,对我正在发短信的人用单独的颜色编码。

2

不过我同意。你并不总是注意到它,没有什么对比。

 
Vladimir Pastushak:

以下是信息的截图,请告诉我目前选择的是哪个对话者

在Chrome(71.0.3578.98)中可以,在FF(64)中完全不可见。
 
一般来说,在整个网站上增加对比度是很好的。
 

在MQL中是否可以取消对*CObject指针的引用?

我尝试了不同的变体,这里有一个测试脚本,我在链接列表中添加了3个Myclass元素,然后改变CMyclass字段的值,它起作用了。

#include <Object.mqh>
#include <Arrays\List.mqh>
//+------------------------------------------------------------------+
class CMyclass:public CObject
  {
public:
   int               x;
   double            y;
   void              CMyclass(void):x(-1),y(-2.2) { }
  };
//+------------------------------------------------------------------+
void OnStart()
  {
   CList *base=new CList;
   CMyclass *result;
   for(int i=0;i<3;i++)
     {
      base.Add(new CMyclass);
      result=base.GetCurrentNode();
      result.x = 99;
      result.y = -555.5;
     }
   for(int i=0;i<3;i++)
     {
      result=base.GetNodeAtIndex(i);
      Print(result.x," : ",result.y);
     }
   delete base;
  }
//+------------------------------------------------------------------+

我可以修改动态创建的CMyclass元素的字段,而不需要中间的指针CMyclass *result吗?

像这样:(CMyclass *)(base.GetCurrentNode()).x = 99。

PS:我怀疑我们需要使用typedef,但到目前为止还没有成功。

 
Igor Makanu:

在MQL中是否可以取消对*CObject指针的引用?

我尝试了不同的变体,这里有一个测试脚本,我在链接列表中添加了3个Myclass元素,然后改变CMyclass字段的值,它起作用了。

我可以修改动态创建的CMyclass元素的字段,而不需要中间的指针CMyclass *result吗?

像这样:(CMyclass *)(base.GetCurrentNode()).x = 99。

PS:我怀疑我们需要使用typedef,但到目前为止还没有成功。

我不知道CList 这个库是做什么的,但我以前是这样做的

#define  alive(node)  (CheckPointer(node)==POINTER_DYNAMIC)
#define  loopf(type, node)  for(type *o=alive(node)?node.First():NULL; alive(o); o=alive(o)?(alive(o.Next())?o.Next():NULL):NULL)
//.....
      loopf(COrder, corr){
         if((fabs(o.StopLoss()-sl)>=_point(o.Symbol())) || (fabs(o.TakeProfit()-tp)>=_point(o.Symbol()))){
            o.SLTP(sl, tp);
         }
      }
//.....
 
Ilya Malev:

我不知道CList这个库是做什么的,但我以前是这样做的

谢谢,这不是我想找的,你的例子实际上是通过函数调用进行的类型转换。

SZZ: 我不习惯在MQL中使用指针,我正在努力理解它。 这个例子似乎很简单,也很有效,但我还没有找到任何解决方案,如何将GetCurrentNode () -->CObject *的 结果带到我的类型CMyclass....当然,我可以使用CMyclass构造函数,但我希望 在MQL中找到一个巧妙的解决方案。

 
Igor Makanu:

谢谢,这不是我想找的,你的例子实际上是通过函数调用进行的类型转换

SZZ:我不习惯在MQL中使用指针,我试图理解这个简单而有效的例子,但我没有找到任何解决方案,把GetCurrentNode () -->CObject *的 结果带到我的类型CMyclass....当然,我可以 使用CMyclass构造函数,但我希望,在MQL中有一个聪明的类型转换 解决方案。

我的基类是CNode(它有Prev(), Next()等方法),我的问题就是你所描述的那样。循环调用COrder的字段,它是它的后代。循环在定义中被声明了1次,然后被到处使用。