错误、漏洞、问题 - 页 1149 1...114211431144114511461147114811491150115111521153115411551156...3184 新评论 Sergey Holubko 2014.05.26 12:05 #11481 Contender: 否则。string var1[1][2] = {{"dfdffd", "dfdfdfd"}}.? thanks....question removed. Evgeniy Ledovskih 2014.05.26 14:11 #11482 问候尊敬的社区。我在网站上找不到,我自己也半天没弄明白,为什么这个代码会写出错误。如果可以,请告诉我。//+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { //--- string nameObject="testObject"; ChartRedraw(0); ResetLastError(); if(ObjectFind(0,nameObject)>=0){ if(!ObjectDelete(0,nameObject)){ if(_LastError>0){ Print("1 Ошибка №",_LastError); ResetLastError(); } } } ChartRedraw(0); if(_LastError>0){ Print("2 Ошибка №",_LastError); // Тут ошибка №4202 <Графический объект не найден> ResetLastError(); } if(!ObjectCreate(0,nameObject,OBJ_LABEL,0,0,0)){ if(_LastError>0){ Print("3 Ошибка №",_LastError); ResetLastError(); } }else{ ObjectSetInteger(0,nameObject,OBJPROP_CORNER,1); } if(_LastError>0){ Print("4 Ошибка №",_LastError); ResetLastError(); } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ --- 2014.05.26 14:33 #11483 svds75:问候尊敬的社区。我在网站上找不到,我自己也半天没弄明白,为什么这个代码会写出错误。如果可以,请告诉我。 为什么要删除该对象? Evgeniy Ledovskih 2014.05.26 14:38 #11484 sergeev: 为什么要删除一个对象? 该计划实际上比这更复杂。我已经把它简化得不成比例,看看问题出在哪里。但我还没有搞清楚。 Ilyas 2014.05.26 15:23 #11485 svds75: 该方案实际上更加复杂。我已经把它简化得不成比例,看看问题出在哪里。但我还是不明白。 试着理解为什么只有一条信息,而不是每个勾都 有,那么就不会有问题了。 --- 2014.05.26 15:25 #11486 svds75: 实际上,该方案更为复杂。我已经把它简化得不成比例,看看问题出在哪里。但我还是不明白。从代码的风格来看,它仍然可以被简化。也许我在if/else中混淆了? Vladimir Karputov 2014.05.26 15:56 #11487 svds75:问候尊敬的社区。我在网站上找不到,我自己也半天没弄明白,为什么这个代码会写出错误。如果可以,请告诉我。在这种布局 下,代码 的可读性更好,而且错误也能立即看到。//--- string nameObject="testObject"; ChartRedraw(0); ResetLastError(); if(ObjectFind(0,nameObject)>=0) // конечно объект не найден { if(!ObjectDelete(0,nameObject)) { if(_LastError>0) { Print("1 Ошибка №",_LastError); ResetLastError(); } } } ChartRedraw(0); if(_LastError>0) { // поэтому сразу переходим сюда: Print("2 Ошибка №",_LastError); // Тут ошибка №4202 <Графический объект не найден> ResetLastError(); } Evgeniy Ledovskih 2014.05.26 16:06 #11488 mql5: 试着理解为什么只有一条信息,而不是每个勾都有,那么你就不会有任何问题了。 对不起,我不明白。也许你知道答案,并给了我一个提示。我也想过,如果你告诉我哪个函数,ObjectFind()或ObjectDelete(),在_LastError中出错,或者其他,也许我会理解。 sergeev: 从代码的风格来看,它仍然可以被简化。 评论一下也许在if/else中混淆了?我已经尝试了很多变体(甚至在这个代码中),更不用说应用的地方了。而下面的if/else,似乎你可以把它删除,但错误仍然存在。总的来说,它可以被绕过。你必须在体面地处理完对象后写更多的代码来检查它。我发现删除它并使用必要的参数重新创建它比较容易,因为它的参数在运行期间会多次变化。在这里我遇到了,这就是我问的原因。 Evgeniy Ledovskih 2014.05.26 16:21 #11489 barabashkakvn:这使代码 更容易阅读,并立即显示错误。什么是错误?即使你知道这个对象不存在,你就不能检查它是否存在吗? 至于设计,正如他们所说,"品味和色彩......" Vladimir Karputov 2014.05.26 16:23 #11490 svds75:这有什么不对吗?即使你知道这个物体不存在,你就不能检查它的存在吗? 至于设计,正如他们所说,"品味和色彩......"寻物返回的值如果函数成功,它将返回 找到的对象所在的子窗口的编号(0表示主图表窗口)。如果没有找到该对象,该函数将返回一个负数。要 获得 有关错误 的 额外信息,请调用 GetLastError() 函数。如果没有找到该对象,这就是一个错误。这时,ObjectFind 函数本身将返回一个负数,可以得到错误号码。这就更清楚了。//--- string nameObject="testObject"; ChartRedraw(0); ResetLastError(); int find=ObjectFind(0,nameObject); if(find>=0) // конечно объект не найден { if(!ObjectDelete(0,nameObject))在调试中运行它,看看变量"find"的值。 1...114211431144114511461147114811491150115111521153115411551156...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
否则。
string var1[1][2] = {{"dfdffd", "dfdfdfd"}}.
?
问候尊敬的社区。
我在网站上找不到,我自己也半天没弄明白,为什么这个代码会写出错误。如果可以,请告诉我。
问候尊敬的社区。
我在网站上找不到,我自己也半天没弄明白,为什么这个代码会写出错误。如果可以,请告诉我。
为什么要删除一个对象?
该方案实际上更加复杂。我已经把它简化得不成比例,看看问题出在哪里。但我还是不明白。
实际上,该方案更为复杂。我已经把它简化得不成比例,看看问题出在哪里。但我还是不明白。
从代码的风格来看,它仍然可以被简化。
也许我在if/else中混淆了?
问候尊敬的社区。
我在网站上找不到,我自己也半天没弄明白,为什么这个代码会写出错误。如果可以,请告诉我。
在这种布局 下,代码 的可读性更好,而且错误也能立即看到。
试着理解为什么只有一条信息,而不是每个勾都有,那么你就不会有任何问题了。
从代码的风格来看,它仍然可以被简化。 评论一下
也许在if/else中混淆了?
我已经尝试了很多变体(甚至在这个代码中),更不用说应用的地方了。而下面的if/else,似乎你可以把它删除,但错误仍然存在。
总的来说,它可以被绕过。你必须在体面地处理完对象后写更多的代码来检查它。我发现删除它并使用必要的参数重新创建它比较容易,因为它的参数在运行期间会多次变化。在这里我遇到了,这就是我问的原因。
这使代码 更容易阅读,并立即显示错误。
什么是错误?即使你知道这个对象不存在,你就不能检查它是否存在吗?
至于设计,正如他们所说,"品味和色彩......"
这有什么不对吗?即使你知道这个物体不存在,你就不能检查它的存在吗?
至于设计,正如他们所说,"品味和色彩......"
寻物
返回的值
如果函数成功,它将返回 找到的对象所在的子窗口的编号(0表示主图表窗口)。如果没有找到该对象,该函数将返回一个负数。要 获得 有关错误 的 额外信息,请调用 GetLastError() 函数。
如果没有找到该对象,这就是一个错误。这时,ObjectFind 函数本身将返回一个负数,可以得到错误号码。
这就更清楚了。
在调试中运行它,看看变量"find"的值。