Работа с ресурсами для оптимизации MapInfo: различия между версиями
Slinger (обсуждение | вклад) Нет описания правки |
Slinger (обсуждение | вклад) Нет описания правки |
||
Строка 23: | Строка 23: | ||
'''FONT 8, "Helv"''' - объявление стиля и размера используемого в диалоге шрифта | '''FONT 8, "Helv"''' - объявление стиля и размера используемого в диалоге шрифта | ||
Далее следуют объявления компонентов диалога: статической строки, списка и кнопок. Большинство их атрибутов интуитивно понятны и могут быть изменены на своё усмотрение. Единственное, что не стоит менять, так это номер исполняемого действия для элемента. В вышеуказанном диалоге для кнопки "Закрыть" этот номер равен 1, для кнопки "Отмена" - 2, а для кнопки вызова справки - 5. В случае изменения данного атрибута элемент диалога будет выполнять не те действия, которые для него были прописаны. Все остальные атрибуты возможно изменять как путём перемещения и растягивания оных с помощью мышки, так и задавая точные необходимые значения. Например, если необходимо будет | |||
{{Статья|Черновик}} | {{Статья|Черновик}} |
Версия от 23:04, 25 декабря 2016
В этой заметке будет описан способ редактирования диалоговых окон, текстовых объектов и других объектов интерфейса, находящиеся в ресурсах динамических библиотек, подгружаемых MapInfo.
Для работы потребуется утилита Resource Hacker, которая является бесплатной и не требует установки.
Работа с диалоговыми окнами
Диалоговые окна в MapInfo - тема довольно интересная. Связано это с тем, что диалоговые окна по большей части являются статическими: их невозможно ни развернуть, ни растянуть, ни запомнить их последующее положение. Практически все окна в MapInfo небольшие по своему. Возможно, это связано с тем, чтобы окна полностью уменьшались на экране монитора даже на самом низком разрешении. Однако, с развитием технологий и увеличением разрешения экрана, размер окон остался неизменным и всё таким же неудобным. Но существуют возможности исправить эти недочёты, о чём и будет сказано в этом разделе.
После распаковки и запуска программы Resource Hacker, открываем файл mires.dll, находящийся в корневой директории с MapInfo. Для примера написания данной статьи взята последняя 32-х битная версия MapInfo, а именно 15.0. Но файл mires.dll принципиально ничем не отличается, поэтому информация будет также актуальной и для старых версий MapInfo.
После того, как файл mires.dll будет открыт, необходимо перейти в директорию Dialog. Далее, для примера, поработаем с окном "Закрыть таблицу". Для того, чтобы быстро найти нужный диалог и вдобавок узнать номер ресурса, можно воспользоваться поиском. Диалог и его описание выглядят так:
2520 DIALOG 21, 30, 203, 98 - здесь следует объявление номера ресурса, а также начальные координаты появления окна на экране и размеры окна.
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU - объявление стилей согласно Win 32 API. Некоторые из них будут рассмотрены далее, но полное их описание можно почитать на сайте MSDN
CAPTION "Закрыть таблицу" - Заголовок окна
LANGUAGE LANG_RUSSIAN, 0x0 - объявление используемого языка ресурса. В изменении нет необходимости
FONT 8, "Helv" - объявление стиля и размера используемого в диалоге шрифта
Далее следуют объявления компонентов диалога: статической строки, списка и кнопок. Большинство их атрибутов интуитивно понятны и могут быть изменены на своё усмотрение. Единственное, что не стоит менять, так это номер исполняемого действия для элемента. В вышеуказанном диалоге для кнопки "Закрыть" этот номер равен 1, для кнопки "Отмена" - 2, а для кнопки вызова справки - 5. В случае изменения данного атрибута элемент диалога будет выполнять не те действия, которые для него были прописаны. Все остальные атрибуты возможно изменять как путём перемещения и растягивания оных с помощью мышки, так и задавая точные необходимые значения. Например, если необходимо будет