Инструменты пользователя

Инструменты сайта


blackbox:noappwin

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
blackbox:noappwin [2017/05/01 23:14]
иван_денисов
blackbox:noappwin [2020/10/30 13:26] (текущий)
iadenisov
Строка 1: Строка 1:
 ====== Приложение без главного окна Блэкбокса ====== ====== Приложение без главного окна Блэкбокса ======
  
-Иногда возникает необходимость сделать приложение, состоящее из одной диалоговой формы. Главное окно Блэкбокса при этом необходимо каким-то образом спрятать. С одной стороны для этого предусмотрен специальный ключ ''/NOAPPWIN'', однако его возможно прописать только в ярлыке, что не подходит для распространения приложения в виде простого архива или непосредственно исполняемого файла ''exe''.+Иногда возникает необходимость сделать приложение, состоящее из одной диалоговой формы. Главное окно [[:blackbox|Блэкбокса]] при этом необходимо каким-то образом спрятать. С одной стороны для этого предусмотрен специальный ключ ''/NOAPPWIN'', однако его возможно прописать только в ярлыке, что не подходит для распространения приложения в виде простого архива или непосредственно исполняемого файла ''exe''.
  
-В этой заметке рассмотрен способ комфортной разработки приложений без главного окна путем модификации модуля ''HostMenus''.+В этой заметке рассмотрен способ разработки приложений без главного окна путем модификации модуля ''HostMenus''.
  
 ===== 1. Подготовка Config ===== ===== 1. Подготовка Config =====
Строка 9: Строка 9:
 Первым делом необходимо подготовить ваш файл ''Config'', который определяет, что будет происходить сразу после запуска Блэкбокса. Этот модуль вызывается из модуля ''Init'', который загружает ''StdLoader'' сразу после загрузки ядра Блэкбокса. Первым делом необходимо подготовить ваш файл ''Config'', который определяет, что будет происходить сразу после запуска Блэкбокса. Этот модуль вызывается из модуля ''Init'', который загружает ''StdLoader'' сразу после загрузки ядра Блэкбокса.
  
-  - В корневом каталоге Блэкбокса создайте папку ''My'' (а в ней ''My/Mode'', ''My/Code'', ''My/Rsrc''). 
   - Создайте новый документ, и добавьте в него код:   - Создайте новый документ, и добавьте в него код:
  
Строка 25: Строка 24:
  
 Вместо 'Obx/Rsrc/Dialog.odc' укажите путь к форме своего модуля, а вместо 'ObxDialog Demo' заголовок формы. Вместо 'Obx/Rsrc/Dialog.odc' укажите путь к форме своего модуля, а вместо 'ObxDialog Demo' заголовок формы.
 +  - В корневом каталоге Блэкбокса создайте папку ''My'' (а в ней ''My/Mod'' и ''My/Code'').
   - Сохраните файл ''Config.odс'' в папке ''My/Mod''.   - Сохраните файл ''Config.odс'' в папке ''My/Mod''.
   - Скомпилируйте модуль.   - Скомпилируйте модуль.
Строка 36: Строка 36:
  
   - Откройте файл ''Host/Mod/Menus.odc''.   - Откройте файл ''Host/Mod/Menus.odc''.
-  - Добавьте в конец процедуры ''ReadCommandLine'' следующую строку: <code componentpascal>IF ~open THEN state := noAppWin; HostWindows.noAppWin := TRUE END</code> эта модификация устанавливает значения переменных как при ключе ''/NOAPPWIN''.+  - Добавьте в конец процедуры ''ReadCommandLine'' следующую строку: ''IF ~open THEN state := noAppWin; HostWindows.noAppWin := TRUE END'' эта модификация устанавливает значения переменных как при ключе ''/NOAPPWIN''.
   - Скомпилируйте модуль ''HostMenus''.   - Скомпилируйте модуль ''HostMenus''.
   - Переместите файл ''Host/Code/Menus.ocf'' в папку ''My/Code/Menus.ocf''.   - Переместите файл ''Host/Code/Menus.ocf'' в папку ''My/Code/Menus.ocf''.
blackbox/noappwin.1493669678.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)