Eu tentei fazer uma mesa com etiquetas em fonte mono como sugerido aqui - não é uma visão agradável. Especialmente os números fracionários são manchados horizontalmente de tal forma que é difícil de ver. Assim, ficamos com a opção de etiquetas em uma fonte regular, com uma etiqueta separada para cada célula. Isso envolveria alguns poucos objetos, como já escrevi antes.
Jartmailru, você sabe se é realista criar uma janela de saída diretamente no código EA, sem usar uma DLL? Todas as funções do WinApi estão disponíveis. A única dificuldade pode ser apenas ao passar uma estrutura contendo ambas as variáveis e ponteiros ao mesmo tempo.
É legal, mas você não tem mesas com muitos números longos seguidos, por isso é muito fácil de ler.
Talvez, eu não sei, eu nunca me tenha proposto tal tarefa. Ter o terminal como uma ferramenta bastante boa para exibir vários tipos de informações gráficas na forma de gráficos e gráficos, para construir e analisar uma grande quantidade de informações textuais nele contidas? - Por que quando você tem Excel para isso ... Embora, é claro, esta seja minha humilde opinião :)
jartmailru: Por outro lado, eu me pergunto se você ainda não encontrou que os primeiros 30% das entradas geralmente estão faltando no registro, e que as entradas são seletivamente perdidas depois.
Os logs têm todas as linhas, é o terminal que os exibe seletivamente. Se você mesmo abrir os arquivos, todos eles estarão lá.
// Você pode fazer uma DLL para Unicode? Serei sinceramente grato.
Aqui está. Funções adicionadas LogW, SelectW, mas não testou - qualquer problema, favor contatar. Se você fizer fichário para o 5º, por favor, envie-o para mim :-). .
Carne:
Jartmailru, você sabe se é realista criar uma janela de saída diretamente no código EA sem usar uma DLL? Todas as funções do WinApi estão disponíveis. O único engate pode ser somente ao passar uma estrutura contendo tanto variáveis como ponteiros.
Se você fez algo retorcido, talvez seja possível. Eu não torço :-). Uma janela ao lado de um MT em C++ requer uma linha de interface separada. Se for uma janela única, é trivial. . A propósito... não é um fato que as abas... ...você será capaz de alinhar o conteúdo das colunas na medida certa. .
PapaYozh: Os logs têm todas as linhas, é o terminal que os mostra de forma seletiva. Se você mesmo abrir os arquivos, todos eles estarão lá.
Eu não me importo :-). Mas: Tenho tudo exposto + fiz um gráfico... log (o ponto do gráfico é pesquisado no log - o lugar certo é mostrado). .
Bem, eu fiz uma aba para fontes com vários espaçamentos! :) Viva! :) É claro que tive que criar muitos problemas com as funções do WinAPI, mas valeu a pena. É útil não apenas para Comentar, mas também para Rótulo. A idéia é que obtemos o tamanho de qualquer corda em qualquer fonte em pixels. E então você pode tabulá-los como quiser, seja à esquerda, à direita ou ao centro. Para Comentar, a tabulação é naturalmente feita com espaços, portanto o resultado não é perfeito, o erro está dentro de 1-2 pixels, mas não é nada em princípio. Para as etiquetas, tudo é muito mais simples.
Aqui está um exemplo mostrando as abas em Comentário. Tahoma,8 é especificado aqui, uma vez que os comentários são produzidos nessa fonte.
#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 48int hWnd=WindowHandle(Symbol(),Period());
int DC=GetDC(hWnd);
int dpi=GetDeviceCaps(DC,88); //88=LOGPIXELSXstring 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);
}
Eu tentei fazer uma mesa com etiquetas em fonte mono como sugerido aqui - não é uma visão agradável. Especialmente os números fracionários são manchados horizontalmente de tal forma que é difícil de ver. Assim, ficamos com a opção de etiquetas em uma fonte regular, com uma etiqueta separada para cada célula. Isso envolveria alguns poucos objetos, como já escrevi antes.
Jartmailru, você sabe se é realista criar uma janela de saída diretamente no código EA, sem usar uma DLL? Todas as funções do WinApi estão disponíveis. A única dificuldade pode ser apenas ao passar uma estrutura contendo ambas as variáveis e ponteiros ao mesmo tempo.
rótulos em todo o mono
as etiquetas na mono-china.
Em uma mono-china, você quer dizer?
É legal, mas você não tem mesas com muitos números longos seguidos, por isso é muito fácil de ler.
Em um mono-wide você quer dizer?
É legal, mas você não tem mesas com muitos números longos seguidos, por isso é muito fácil de ler.
Por outro lado, eu me pergunto se você ainda não encontrou
que os primeiros 30% das entradas geralmente estão faltando no registro, e que as entradas são seletivamente perdidas depois.
// Você pode fazer uma DLL para Unicode? Serei sinceramente grato.
Se você fizer fichário para o 5º, por favor, envie-o para mim :-).
.
Jartmailru, você sabe se é realista criar uma janela de saída diretamente no código EA sem usar uma DLL? Todas as funções do WinApi estão disponíveis. O único engate pode ser somente ao passar uma estrutura contendo tanto variáveis como ponteiros.
Uma janela ao lado de um MT em C++ requer uma linha de interface separada.
Se for uma janela única, é trivial.
.
A propósito... não é um fato que as abas... ...você será capaz de alinhar
o conteúdo das colunas na medida certa.
.
Os logs têm todas as linhas, é o terminal que os mostra de forma seletiva. Se você mesmo abrir os arquivos, todos eles estarão lá.
log (o ponto do gráfico é pesquisado no log - o lugar certo é mostrado).
.
Bem, eu fiz uma aba para fontes com vários espaçamentos! :) Viva! :) É claro que tive que criar muitos problemas com as funções do WinAPI, mas valeu a pena. É útil não apenas para Comentar, mas também para Rótulo. A idéia é que obtemos o tamanho de qualquer corda em qualquer fonte em pixels. E então você pode tabulá-los como quiser, seja à esquerda, à direita ou ao centro. Para Comentar, a tabulação é naturalmente feita com espaços, portanto o resultado não é perfeito, o erro está dentro de 1-2 pixels, mas não é nada em princípio. Para as etiquetas, tudo é muito mais simples.
Aqui está um exemplo mostrando as abas em Comentário. Tahoma,8 é especificado aqui, uma vez que os comentários são produzidos nessa fonte.
Aqui está um exemplo mostrando tabulação em Comentário. A fonte aqui é Tahoma,8, já que os comentários são produzidos nesta fonte.
+ remontou a saída de qualquer texto, não apenas um conjunto de linhas
+ o fez como uma função separada ComentárioTab
+ adicionou uma matriz de valores TabStop e um tamanho de Tab padrão (como na função GDI)
Exemplo de texto e resultado