关于标签字符的所有这些废话是什么? - 页 5 12345678 新评论 Alexey Navoykov 2011.06.27 23:11 #41 我试着按照这里的建议,用单色字体制作一个带有标签的表格--它并不悦目。特别是小数点的数字被横向涂抹,非常难看。 所以我们只能选择普通字体的标签,每个单元格都有单独的标签。 这将涉及相当多的对象,正如我以前写过的。 Jartmailru,你知道在EA代码中直接创建一个输出窗口,而不使用DLL是否现实?所有的WinApi功能都可以使用。 唯一的障碍可能只是在同时传递一个包含变量和指针的结构时。 Rustamzhan Salidzhanov 2011.06.27 23:24 #42 在单一范围内的标签 Rustamzhan Salidzhanov 2011.06.27 23:31 #43 不要被愚弄 - 使用现成的组件 :https://www.mql5.com/ru/code/8724 Alexey Navoykov 2011.06.27 23:45 #44 xrust: 在单片机中的标签。 你是说在一个单弦机中? 当然,这很好,但你的表格里没有很多长长的数字,所以它很容易读。 Rustamzhan Salidzhanov 2011.06.28 01:39 #45 Meat: 你的意思是在一个单一的范围内? 这很好,但你没有一排有很多长数字的表格,所以它相当容易阅读。 也许吧,我不知道,我从来没有给自己设定过这样的任务。拥有终端作为一个相当好的工具,以图形和图表的形式显示各种图形信息,在其中建立和分析大量的文本信息?- 为什么当你有Excel的时候......。 当然,这只是我的拙见 :) PapaYozh 2011.06.28 04:13 #46 jartmailru: 另一方面,我想知道你是否已经遇到了 前30%的条目通常会从日志中丢失,之后的条目会有选择地丢失。 日志中有所有的行,是终端在有选择地显示它们。如果你打开这些文件本身,它们都在那里。 Андрей 2011.06.28 06:11 #47 MetaDriver: // 你能为Unicode做一个DLL吗? 我将真诚地表示感谢。 给你。增加了LogW、SelectW等功能,但没有测试--有问题请联系。 如果你愿意为第五次制作活页夹,请寄给我:-)。 . 肉类。 Jartmailru,你知道在EA代码中直接创建输出窗口而不使用DLL是否现实?所有的WinApi功能都可以使用。 唯一的麻烦可能只有在传递一个同时包含变量和指针的结构时。 如果你做了一些扭曲的事情,也许就有可能了。我不扭捏:-)。 在C++中,一个MT旁边的窗口需要一个单独的接口线程。 如果是一个单一的窗口,这是很微不足道的。 . 顺便说一下...这不是一个事实,标签......你将能够对准 列的内容到合适的程度。 . PapaYozh: 日志上有所有的行,是终端有选择地显示它们。如果你打开这些文件本身,它们都在那里。 我不介意 :-)。 日志(在日志中搜索图形中的点--正确的位置被显示出来)。 . 附加的文件: out.zip 123 kb Alexey Navoykov 2011.06.29 06:32 #48 好吧,我已经为多行字体做了一个标签!:)耶!:)当然,我不得不在WinAPI函数上大费周章,但这是值得的。它不仅对评论有用,而且对标签也有用。这个想法是,我们可以得到任何字体的任何字符串的尺寸,单位是像素。然后你可以按照你的意愿将它们列成表格,可以是左边、右边,也可以是中间。 对于Comment来说,制表时自然会有空格,所以结果并不完美,误差在1-2个像素内,但原则上没什么。对于标签来说,一切都要简单得多。 这里有一个例子,显示Comment中的标签。 这里指定了Tahoma,8,因为注释是以这种字体输出的。 #import "Gdi32.dll" int CreateFontA(int nHeight,int nWidth,int nEscapement,int nOrientation,int fnWeight,int fdwItalic,int fdwUnderline, int fdwStrikeOut,int fdwCharSet,int fdwOutputPrecision,int fdwClipPrecision,int fdwQuality, int fdwPitchAndFamily,string lpszFace); int SelectObject(int hdc,int hgdiobj); bool DeleteObject(int hObject); int GetDeviceCaps(int hdc,int nIndex); bool GetTextExtentPoint32A(int hdc,string lpString,int cbString,int lpSize[]); #import "user32.dll" int GetDC(int hWnd); int ReleaseDC(int hWnd,int hDC); //+------------------------------------------------------------------+ int start() { #define DEFAULT_CHARSET 1 #define OUT_DEFAULT_PRECIS 0 #define CLIP_DEFAULT_PRECIS 0 #define DEFAULT_QUALITY 0 #define DEFAULT_PITCH 0 #define FF_MODERN 48 int hWnd=WindowHandle(Symbol(),Period()); int DC=GetDC(hWnd); int dpi=GetDeviceCaps(DC,88); //88=LOGPIXELSX string Font="Tahoma"; int fontsize=8; int fontheight=MathRound(fontsize*dpi/72.0); int hFont=CreateFontA(fontheight,0,0,0,0,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_MODERN,Font); SelectObject(DC,hFont); string StringArray[]={"Один","Два","Три","Четыре","Пять","Шесть","Семь","Восемь","Девять","Десять","Одиннадцать","Двенадцать"}; int arraysize=ArraySize(StringArray); int tabpixels=100; // размер табуляции в пикселях int size[2]; GetTextExtentPoint32A(DC," ",1,size); // получаем размер пробела int spacesize=size[0]; if (spacesize==0) { Alert("spacesize=0"); return(0); } string text="\n"; int rowsize=0; int alignmode=0; // 0- по левому краю, 1- по правому краю for (int i=0; i<arraysize; i++) { int column=i%4; string str=StringArray[i]; GetTextExtentPoint32A(DC,str,StringLen(str),size); // получаем размер строки int spacecount=MathRound((tabpixels*(column+1)-size[0]-rowsize)*1.0/spacesize); for (int s=0; s<spacecount; s++) if (alignmode==0) str=str+" "; else str=" "+str; rowsize+=size[0]+spacesize*spacecount; text=text+str; if (column==3 || i==arraysize-1) { text=text+"\n"; rowsize=0; if (i<arraysize-1) continue; if (alignmode==1) break; alignmode++; text=text+"\n\n"; i=-1; } } Comment(text); ReleaseDC(hWnd,DC); DeleteObject(hFont); return(0); } Андрей 2011.06.29 07:06 #49 你真是懒得很 :-) --- 2011.06.29 09:43 #50 Meat: 下面是一个例子,显示了Comment中的标签。 这里设置的字体是Tahoma,8,因为注释是以这种字体输出的。 +重新制作任何文本的输出,而不仅仅是一个行数组的输出 +把它作为一个单独的函数CommentTab + 添加了一个TabStop值的数组和一个默认的Tab大小(如GDI函数中)。 文本和结果的例子 //------------------------------------------------------------------ start int start() { string txt="\n"; txt=txt+"Ticket\tOpen Time\tType\tSize\tItem\tPrice\tS / L\tT / P\tClose Time\tPrice\tCommission\tTaxes\tSwap\tProfit"+"\n"; txt=txt+"524567\t28.06.2011 15:02\tbuy\t0.35\teurusd.vpe\t1.43380\t1.43390\t0.00000\t29.06.2011 2:39\t1.43383\t-3.50\t0.00\t0.56\t0.73"+"\n"; txt=txt+"523492\t28.06.2011 15:02\tbuy\t0.70\teurusd.vpe\t1.43397\t1.43407\t1.47115\t28.06.2011 18:17\t1.43407\t-7.00\t0.00\t0.00\t4.88"+"\n"; txt=txt+"523494\t28.06.2011 15:02\tbuy\t0.70\teurusd.vpe\t1.43397\t1.43407\t0.00000\t28.06.2011 18:17\t1.43407\t-7.00\t0.00\t0.00\t4.88"+"\n"; txt=txt+"523498\t28.06.2011 15:02\tbuy\t0.35\teurusd.vpe\t1.43380\t1.43390\t0.00000\t28.06.2011 17:00\t1.43675\t-3.50\t0.00\t0.00\t71.86"+"\n"; txt=txt+"522650\t27.06.2011 14:50\tbuy\t0.80\teurusd.vpe\t1.42240\t1.42371\t1.43687\t28.06.2011 15:19\t1.43693\t-8.00\t0.00\t1.28\t808.95"+"\n"; int tab[]={10, 22, 10, 10, 15, 12, 12, 12, 22, 12, 20, 10, 10}; // размеры в пробелах CommentTab(txt, tab, 30); // вызвали преобразование и вывод по табуляции } 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我试着按照这里的建议,用单色字体制作一个带有标签的表格--它并不悦目。特别是小数点的数字被横向涂抹,非常难看。 所以我们只能选择普通字体的标签,每个单元格都有单独的标签。 这将涉及相当多的对象,正如我以前写过的。
Jartmailru,你知道在EA代码中直接创建一个输出窗口,而不使用DLL是否现实?所有的WinApi功能都可以使用。 唯一的障碍可能只是在同时传递一个包含变量和指针的结构时。
在单一范围内的标签
在单片机中的标签。
你是说在一个单弦机中?
当然,这很好,但你的表格里没有很多长长的数字,所以它很容易读。
你的意思是在一个单一的范围内?
这很好,但你没有一排有很多长数字的表格,所以它相当容易阅读。
另一方面,我想知道你是否已经遇到了
前30%的条目通常会从日志中丢失,之后的条目会有选择地丢失。
// 你能为Unicode做一个DLL吗? 我将真诚地表示感谢。
如果你愿意为第五次制作活页夹,请寄给我:-)。
.
Jartmailru,你知道在EA代码中直接创建输出窗口而不使用DLL是否现实?所有的WinApi功能都可以使用。 唯一的麻烦可能只有在传递一个同时包含变量和指针的结构时。
在C++中,一个MT旁边的窗口需要一个单独的接口线程。
如果是一个单一的窗口,这是很微不足道的。
.
顺便说一下...这不是一个事实,标签......你将能够对准
列的内容到合适的程度。
.
日志上有所有的行,是终端有选择地显示它们。如果你打开这些文件本身,它们都在那里。
日志(在日志中搜索图形中的点--正确的位置被显示出来)。
.
好吧,我已经为多行字体做了一个标签!:)耶!:)当然,我不得不在WinAPI函数上大费周章,但这是值得的。它不仅对评论有用,而且对标签也有用。这个想法是,我们可以得到任何字体的任何字符串的尺寸,单位是像素。然后你可以按照你的意愿将它们列成表格,可以是左边、右边,也可以是中间。 对于Comment来说,制表时自然会有空格,所以结果并不完美,误差在1-2个像素内,但原则上没什么。对于标签来说,一切都要简单得多。
这里有一个例子,显示Comment中的标签。 这里指定了Tahoma,8,因为注释是以这种字体输出的。
下面是一个例子,显示了Comment中的标签。 这里设置的字体是Tahoma,8,因为注释是以这种字体输出的。
+重新制作任何文本的输出,而不仅仅是一个行数组的输出
+把它作为一个单独的函数CommentTab
+ 添加了一个TabStop值的数组和一个默认的Tab大小(如GDI函数中)。
文本和结果的例子