MetaTrader 5 / Bibliotecas

GetFontName - biblioteca para MetaTrader 5

1606
(26)

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:

ChartInfo_Old 1.00

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:

ChartInfo 1.00

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