- Получение общего списка свойств терминала и программы
- Номер сборки терминала
- Тип и лицензия программы
- Режимы работы терминала и программы
- Разрешения
- Проверка сетевых подключений
- Вычислительные ресурсы: память, диск, процессор
- Характеристики экрана
- Строковые свойства терминала и программы
- Настраиваемые свойства: лимит баров и язык интерфейса
- Привязка программы к свойствам среды исполнения
- Проверка состояния клавиатуры
- Проверка статуса и причины остановки MQL-программы
- Программное закрытие терминала и код возврата
- Обработка ошибок времени исполнения программы
- Пользовательские ошибки
- Управление отладкой
- Предопределенные переменные
- Предопределенные константы языка MQL5
Характеристики экрана
Несколько свойств, предоставляемых функцией TerminalInfoInteger, относятся к видео подсистеме компьютера.
Идентификатор |
Описание |
---|---|
TERMINAL_SCREEN_DPI |
разрешающая способность вывода информации на экран измеряется в количестве отображаемых точек на погонный дюйм (DPI, Dots Per Inch) |
TERMINAL_SCREEN_LEFT |
левая координата виртуального экрана |
TERMINAL_SCREEN_TOP |
верхняя координата виртуального экрана |
TERMINAL_SCREEN_WIDTH |
ширина виртуального экрана |
TERMINAL_SCREEN_HEIGHT |
высота виртуального экрана |
TERMINAL_LEFT |
левая координата терминала относительно виртуального экрана |
TERMINAL_TOP |
верхняя координата терминала относительно виртуального экрана |
TERMINAL_RIGHT |
правая координата терминала относительно виртуального экрана |
TERMINAL_BOTTOM |
нижняя координата терминала относительно виртуального экрана |
Знание параметра TERMINAL_SCREEN_DPI позволяет задавать размеры графических объектов таким образом, чтобы они выглядели одинаково на мониторах с различной разрешающей способностью. Например, если требуется создать кнопку с видимым размером X сантиметров, то определить для неё количество экранных точек (пикселей) можно следующей функцией:
int cm2pixels(const double x)
|
Виртуальным экраном является прямоугольник, охватывающий все мониторы. Если в системе имеется больше одного монитора и порядок их расположения отличается от строго размещения слева направо, то левая координата виртуального экрана может оказаться отрицательной, а центр (точка отсчета) будет на границе двух мониторов (в верхнем левом углу основного монитора).
Виртуальный экран из нескольких мониторов
Если в системе один монитор, то размер виртуального экрана полностью соответствует ему.
В координатах терминала не учитывается его возможная текущая максимизация (то есть, если главное окно максимизировано, свойства возвращают размер без максимизации, хотя терминал развернут на весь монитор).
В скрипте EnvScreen.mq5 проверим чтение экранных свойств.
void OnStart()
|
А вот пример полученных записей в журнале.
TerminalInfoInteger(TERMINAL_SCREEN_DPI)=96 / ok
|
Помимо общих размеров экрана и окна терминала в MQL-программах довольно часто требуется анализировать текущий размер графика (дочернего окна внутри терминала). Для этих целей имеется специальный набор функций (в частности, ChartGetInteger), который мы рассмотрим в разделе Графики.