タブ文字ってなんなんだろう? - ページ 5 12345678 新しいコメント Alexey Navoykov 2011.06.27 23:11 #41 ここで提案されているように、モノラルフォントでラベルをつけた表を作ろうとしたのですが、見苦しいですね。特に分数の数字は、見づらいくらいに水平に塗りつぶしています。 そのため、通常のフォントでラベルを表示し、各セルに個別のラベルを表示するという選択肢が残されています。 そうなると前にも書きましたが、かなりの数のオブジェクトが必要になってきます。 Jartmailru さん、DLLを使わずにEAコードで直接出力ウィンドウを作成することが現実的かどうかご存知ですか?WinApiの全機能が利用可能です。 唯一の難点は、変数とポインタを同時に含む構造体を渡すときだけかもしれません。 Rustamzhan Salidzhanov 2011.06.27 23:24 #42 のラベルは、モノワイド Rustamzhan Salidzhanov 2011.06.27 23:31 #43 Don't be fool - use a off-the-the-shelf component :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: // ユニコード用のDLLは作れないのでしょうか? 心から感謝します。 お待たせしました。LogW、SelectWの機能を追加しましたが、テストはしていませんので、問題があればご連絡ください。 もし、5thのバインダーを作っていただけるなら、ぜひ送ってください:-)。 . 肉類。 Jartmailru さん、DLLに頼らず、EAのコードで直接出力ウィンドウを作成することが現実的かどうか、ご存知ですか?WinApiの全機能が利用可能です。 唯一の難点は、変数とポインタの両方を含む構造体を渡すときかもしれません。 ひねくれたことをしたのなら、もしかしたら可能性があるかもしれません。私はひねらない :-) C++でMTの隣にあるウィンドウは、別のインターフェイススレッドが必要です。 シングルウィンドウであれば、些細なことです。 . ところで...というわけでもなく、タブが......揃えることができるようになります。 は、列の内容を適切な度合いで表示します。 . パパヨシュ。 ログにはすべての行があり、それを選択的に表示するのがターミナルです。ファイルそのものを開けば、すべて揃っている。 気にしない:-)。でも:全部表示させた+グラフにした-。 log(グラフからの点がlogで検索され、正しい位置が表示される)。 . ファイル: out.zip 123 kb Alexey Navoykov 2011.06.29 06:32 #48 さて、ワイドフォントのタブを作ってみましたよ。:)イエーイ!:)もちろん、WinAPI関数でいろいろと苦労はしましたが、その甲斐はありました。Commentだけでなく、Labelにも有効です。これは、任意の文字列の任意のフォントのサイズをピクセル単位で取得するというものである。そして、左、右、中央のいずれでも好きなように集計することができるのです。 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千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ここで提案されているように、モノラルフォントでラベルをつけた表を作ろうとしたのですが、見苦しいですね。特に分数の数字は、見づらいくらいに水平に塗りつぶしています。 そのため、通常のフォントでラベルを表示し、各セルに個別のラベルを表示するという選択肢が残されています。 そうなると前にも書きましたが、かなりの数のオブジェクトが必要になってきます。
Jartmailru さん、DLLを使わずにEAコードで直接出力ウィンドウを作成することが現実的かどうかご存知ですか?WinApiの全機能が利用可能です。 唯一の難点は、変数とポインタを同時に含む構造体を渡すときだけかもしれません。
のラベルは、モノワイド
モノシンのレーベルを表示します。
モノチンで、ということですか?
もちろんいいのですが、長い数字がたくさん並んでいる表はないので、結構見やすいんですよね。
モノ・ワイドでということですか?
いいんですけど、長い数字がたくさん並んでいる表はないので、結構見やすいんですよね。
一方で、まだ出会っていないのでは?
最初の30%のエントリーが通常ログから失われ、その後エントリーが選択的に失われること。
// ユニコード用のDLLは作れないのでしょうか? 心から感謝します。
もし、5thのバインダーを作っていただけるなら、ぜひ送ってください:-)。
.
Jartmailru さん、DLLに頼らず、EAのコードで直接出力ウィンドウを作成することが現実的かどうか、ご存知ですか?WinApiの全機能が利用可能です。 唯一の難点は、変数とポインタの両方を含む構造体を渡すときかもしれません。
C++でMTの隣にあるウィンドウは、別のインターフェイススレッドが必要です。
シングルウィンドウであれば、些細なことです。
.
ところで...というわけでもなく、タブが......揃えることができるようになります。
は、列の内容を適切な度合いで表示します。
.
ログにはすべての行があり、それを選択的に表示するのがターミナルです。ファイルそのものを開けば、すべて揃っている。
log(グラフからの点がlogで検索され、正しい位置が表示される)。
.
さて、ワイドフォントのタブを作ってみましたよ。:)イエーイ!:)もちろん、WinAPI関数でいろいろと苦労はしましたが、その甲斐はありました。Commentだけでなく、Labelにも有効です。これは、任意の文字列の任意のフォントのサイズをピクセル単位で取得するというものである。そして、左、右、中央のいずれでも好きなように集計することができるのです。 Commentの場合、集計は当然スペースで行うので、結果は完璧ではなく、1~2ピクセル以内の誤差はありますが、原理的には何ともありません。ラベルの場合は、すべてがもっとシンプルになります。
タブをCommentで表示した例です。 ここでは、コメントがこのフォントで出力されるため、Tahoma,8を指定しています。
以下は、Commentでタブを表示する例です。 コメントはこのフォントで出力されるため、ここで設定されているフォントはTahoma,8です。
+ 行の配列だけでなく、任意のテキストをリメイクして出力することが可能
+別機能として作成 CommentTab
+ TabStop値の配列とデフォルトのTabサイズを追加(GDI関数と同様)
本文と結果の例