Características da linguagem mql4, sutilezas e técnicas - página 16

 
Espero que vocês sejam amigos)
 
Fast528:
Espero que vocês sejam amigos)

A "Guerra dos Titãs" não vai acontecer.

 
Espero que o ramo não esteja morto. Eu tenho o seguinte problema: tenho um monitor de 4k, portanto no Windows minha fonte é ampliada (200% de tamanho). Ao fazer objetos de texto para indicadores, o tamanho do texto é retirado das configurações do Windows e também escalonado, como resultado, se eu fizer algo que pareça normal em um sistema normal, em meu computador o texto se sobrepõe e se eu fizer normal para mim, em configurações normais o texto é muito pequeno. Fiz um ajuste no indicador para deixar o usuário escolher se ele é escalonado ou não, mas não gosto muito dele.

Há alguma maneira de saber diretamente do programa qual fonte está atualmente no windows (ampliada ou não) e fazer essa correção em código, sem tocar os usuários? Apenas algumas pessoas podem ter um monitor de 4k com texto em escala e a maioria dos indicadores (onde o texto é usado) do mercado parecem feios e feios.
 
Olga Miakhovich:
Espero que o fio não esteja morto. Tenho o seguinte problema: tenho um monitor de 4k, portanto no Windows tenho uma fonte ampliada (tamanho 200%). Quando você faz objetos de texto para indicadores, o tamanho do texto é retirado das configurações do Windows e também é escalado, como resultado, se você fizer algo que pareça normal em um sistema normal, no meu computador o texto se sobrepõe, e se você o fizer normal para mim, então nas configurações normais o texto é muito pequeno. Fiz um ajuste no indicador para deixar o usuário escolher se ele é escalonado ou não, mas não gosto muito dele.

Há alguma maneira de saber diretamente do programa qual fonte está atualmente no windows (ampliada ou não) e fazer essa correção em código, sem tocar os usuários? Algumas pessoas podem ter um monitor de 4k com texto em escala e a maioria dos indicadores (onde o texto é usado) do mercado parece feio.

Talvez você devesse mudar para trabalhar com recursos, ou CCanvas?

Então você pode definir o tamanho da fonte ali de acordo com as configurações do sistema operacional.

Leia sobre TextOut(), TextSetFont()

Документация по MQL5: Графические объекты / TextSetFont
Документация по MQL5: Графические объекты / TextSetFont
  • www.mql5.com
Устанавливает шрифт для вывода текста методами рисования и возвращает результат успешности этой операции. По умолчанию используется шрифт Arial и размер -120 (12 pt). [in]  Размер шрифта, который может задаваться положительными и отрицательными значениями. При положительных значениях размер выводимого текста не зависит от настроек размеров...
 
É isso aí, solução encontrada. Para aqueles que estão se perguntando o que é: Use a funçãoTerminalInfoInteger(TERMINAL_SCREEN_DPI); Com escala padrão será 96. Se for 2 vezes maior, então a escala será 2 vezes maior de acordo.
 
Olga Miakhovich:
E é isso, a solução é encontrada. Para aqueles que se perguntam o que é: Use a função TerminalInfoInteger(TERMINAL_SCREEN_DPI); Com a escala padrão será 96. Se for 2 vezes maior, então a escala será 2 vezes maior de acordo.

A solução está na ajuda

Exemplo de cálculo do fator de escala:

//--- criamos um botão com largura 1.5" na tela
int screen_dpi =TerminalInfoInteger(TERMINAL_SCREEN_DPI);//--- obter DPI do monitor do usuário
int base_width =144;//largura de base em pontos de tela para monitores padrão com DPI=96
int width = (button_width *screen_dpi) / 96;//calcule a largura do botão para o monitor do usuário (com DPI)
...

//--- calculate the scale factor in percents
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI)* 100) / 96;
//--- usando fator de escala
width=(base_width * scale_factor) / 100;

 
Vladimir Pastushak:

A solução está na ajuda

Sim, mas não é para as fontes.

Olga Miakhovich:
E é isso, a solução é encontrada.

realmente? o dimensionamento afeta o monitor dpi?

 
Características do ArrayResize para arrays multidimensionais
void OnStart()
{
  int Array[][2];
  
  Print(ArrayResize(Array, 7)); // MQL5 - 7, MQL4 - 14
  Print(ArraySize(Array));      // 14
}
 

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Peculiaridades da linguagem mql5, dicas e truques

fxsaber, 2019.02.19 22:28

Você vê a posição aberta e fechada pelo mesmo preço. Mas seus preços não são iguais quando comparados sem a normalização!

 
Bem, sim.