错误、漏洞、问题 - 页 1456 1...144914501451145214531454145514561457145814591460146114621463...3184 新评论 Slava 2015.12.23 14:23 #14551 Vasyl Nosal:你有办法在一个指标中解决这个问题吗,没有刻度?而且我以前也说过。奇怪的是,你可以得到文本本身而不需要渲染,但却不能得到尺寸。蜱虫与此有什么关系?绘制的图表没有刻度线。文本标签的大小是使用win api函数GetTextExtent从显示环境中找到的。在考虑到屏幕分辨率和所选字体大小的情况下,显示环境会给出这一信息。当你第一次创建一个对象时,没有显示上下文。原则上,你可以创建它,但你很容易陷入这样一种情况:"人为 "计算出的尺寸将与实际渲染时实际计算出的尺寸不同。因此,在物体被渲染之前,它的尺寸是未知的。 [删除] 2015.12.23 14:26 #14552 Vasyl Nosal: 试着在创建后使用ChartRedraw(),然后检查尺寸。 [删除] 2015.12.23 14:57 #14553 Alexey Kozitsyn: 尝试在创建后使用ChartRedraw(),然后检查尺寸。 不起作用。 Vladimir Karputov 2015.12.23 15:06 #14554 Vasyl Nosal: 不起作用。一般来说,在OnCalculate()的第一个事件之前,你不应该在指标中绘制任何东西--这种方法将保证图表的创建和对象的 正确工作。大约是这样的--在第一次打勾的时候,我们创造了,但下一次是SIZE。//+------------------------------------------------------------------+ //| TestIndicator1.mq4 | //| Copyright 2015, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #property indicator_chart_window string name="probe"; bool first_tick=false; // false - ещё не было тиков //+------------------------------------------------------------------+ //| 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 datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- static int count; if(count>3) return(rates_total); // после трёх Алертов выходим. Не за чем слух портить. if(!first_tick) { ObjectCreate(0,name,OBJ_LABEL,0,0,0); ObjectSetString(0,name,OBJPROP_TEXT,name); first_tick=true; } else { string text=ObjectGetString(0,name,OBJPROP_TEXT); int text_sizeX=int(ObjectGetInteger(0,name,OBJPROP_XSIZE)); Alert(text," ",text_sizeX); } count++; //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Deinit | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ObjectDelete(name); EventKillTimer(); } //+------------------------------------------------------------------+ [删除] 2015.12.23 16:09 #14555 Karputov Vladimir:一般来说,在OnCalculate()的第一个事件之前,你不应该在指标中绘制任何东西--这种方法将保证图表的创建和对象的 正确工作。大约是这样--在第一次打勾时,我们创造,在下一次打勾时,我们就可以进行SIZE。 好的。我将在周末模拟几次抽查。 [删除] 2015.12.23 16:16 #14556 是否有一个函数可以返回对象是否被渲染了? Vladimir Karputov 2015.12.23 16:22 #14557 Vasyl Nosal: 好的。(笑)。我将在周末模拟几下。 关掉Wi-Fi,你就会有一个星期六:)。 Slava 2015.12.23 16:34 #14558 Vasyl Nosal: 是否有一个函数可以返回对象是否被渲染了? 询问文字标记的大小 Alexandr Bryzgalov 2015.12.23 17:05 #14559 WindowRedraw是否有助于不等待勾选? [删除] 2015.12.23 17:26 #14560 Alexandr Bryzgalov: 和WindowRedraw不会对不等待勾选有帮助吗? 没有。 1...144914501451145214531454145514561457145814591460146114621463...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你有办法在一个指标中解决这个问题吗,没有刻度?
而且我以前也说过。奇怪的是,你可以得到文本本身而不需要渲染,但却不能得到尺寸。
蜱虫与此有什么关系?绘制的图表没有刻度线。
文本标签的大小是使用win api函数GetTextExtent从显示环境中找到的。在考虑到屏幕分辨率和所选字体大小的情况下,显示环境会给出这一信息。
当你第一次创建一个对象时,没有显示上下文。原则上,你可以创建它,但你很容易陷入这样一种情况:"人为 "计算出的尺寸将与实际渲染时实际计算出的尺寸不同。因此,在物体被渲染之前,它的尺寸是未知的。
尝试在创建后使用ChartRedraw(),然后检查尺寸。
不起作用。
一般来说,在OnCalculate()的第一个事件之前,你不应该在指标中绘制任何东西--这种方法将保证图表的创建和对象的 正确工作。
大约是这样的--在第一次打勾的时候,我们创造了,但下一次是SIZE。
一般来说,在OnCalculate()的第一个事件之前,你不应该在指标中绘制任何东西--这种方法将保证图表的创建和对象的 正确工作。
大约是这样--在第一次打勾时,我们创造,在下一次打勾时,我们就可以进行SIZE。
好的。(笑)。我将在周末模拟几下。
是否有一个函数可以返回对象是否被渲染了?
和WindowRedraw不会对不等待勾选有帮助吗?