GetFontName - biblioteca para MetaTrader 5
Quando é utilizado gráficos de texto nos indicadores, muitas vezes é necessário implementar a possibilidade de alterar o tipo de fonte nos parâmetros de entrada do indicador.
A solução mais óbvia em tal caso é que se introduza um nome da fonte manualmente como uma linha nos parâmetros de entrada, porém, ela não é muito conveniente e é propensa a erros. Um método mais eficiente é utilizar as variáveis personalizadas baseado em enumerações e lista de menu suspensas. O módulo da função apresentada é projetada para resolver esta tarefa.
Um exemplo é o suficiente para ser capaz de trabalhar com a biblioteca. Suponha que temos o indicador (ChartInfo_Old.mq5) que exibe um rótulo de texto em um dos cantos do gráfico. Aqui estão seus parâmetros de entrada:
//+----------------------------------------------+ //| Parâmetros de entrada do indicador | //+----------------------------------------------+ input string Text="Real"; // Conteúdo do rótulo texto input color TextColor=Red; // Cor do rótulo de texto input int FontSize=24; // Tamanho da fonte input type_font FontType=Font7; // Tipo da fonte input ENUM_BASE_CORNER WhatCorner=CORNER_LEFT_LOWER; // Localização do canto input uint Y_=1; // Localização vertical
Com esse código a janela de parâmetros de entrada do indicador terá o seguinte aspecto:

Para liberar o usuário da necessidade de inserir manualmente um nome de fonte devemos inserir algumas alterações no código:
1. Adicione o conteúdo do arquivo GetFontName.mqh antes da declaração dos parâmetros de entrada do indicador com a ajuda da diretiva #include:
//+----------------------------------------------+ // type_font Descrição da enumeração | // CFontName Descrição da classe | //+----------------------------------------------+ #include <GetFontName.mqh>
2. Substitua a linha de FontType dos parâmetros de entrada:
input string FontType="Courier New"; // Tipo da fonte
pela linha
input type_font FontType=Font7; // tipo da fonte
Assim, nós mudamos um pouco o significado do uso da variável. Deve-se notar que o significado da variável anterior na nova variável String deve ser declarada a nível global
string sFontType; Então, a variável FontType do código do indicador deve ser substituída por sFontType. Isso deve ser feito apenas em um lugar:
SetTLabel(0,"Info_Label",0,WhatCorner,ENUM_ANCHOR_POINT(2*WhatCorner),5,Y_,Text,TextColor,sFontType,FontSize);
Agora, a variável sFontType deve ser inicializada no bloco OnInit() . Que pode ser feito com apenas algumas linhas de código:
CFontName FONT; sFontType=FONT.GetFontName(FontType);
O indicador ChartInfo.mq5, após sua revisão, deve ser compilado.
Agora você pode ver as mudanças na janela dos parâmetros de entrada do indicador:

Agora, trabalhar com fontes nos parâmetros de entrada do indicador se tornou muito mais conveniente.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/644