OberonCore https://forum.oberoncore.ru/ |
|
Запуск приложения без открытия окна BlackBox https://forum.oberoncore.ru/viewtopic.php?f=81&t=559 |
Страница 1 из 1 |
Автор: | alobo [ Вторник, 10 Июль, 2007 13:18 ] |
Заголовок сообщения: | Запуск приложения без открытия окна BlackBox |
Уважаемые гуру! Сваял свою первую программу, состоит из расчетного модуля и формы для ввода исходных данных. Запускаю: File=>Open=>InputForm Открывается форма в режиме разметки. Затем: Controls=>Open as Tool Dialog Все работает, то есть форма сама вызывает расчетный модуль, и в ней же выводится результат расчета. Теперь стоит задача создать exe-файл. Но вначале пытаюсь запустить программу без открытия лога и главного окна в своей среде. По рекомендации одного из участников форума правлю Config: комментирую строку с StdDialog.Open вставляю строку: StdDialog.Open(GeoInputForm.New(), "Расчет азимута", NIL, "", NIL, TRUE, FALSE, TRUE, FALSE, TRUE); При компиляции получаю ошибку: InputForm undeclared identifier Если в Импорте прописать GeoInputForm, то ошибка уже такая: symbol file or imported module not found Оно и понятно - форма не компилируется, нет ни символьного файла ни бинарника. Вопрос: как можно прописать старт программы со входной формы без вызова главного окна? В документации не нашел... |
Автор: | Иван Горячев [ Вторник, 10 Июль, 2007 14:07 ] |
Заголовок сообщения: | |
Чтобы программно открывать диалоги существует процедура StdCmds.OpenToolDialog. Вообще в модуле StdCmds есть достаточно полезные процедуры. Что касается главного окна - полноценного SDI в Блэкбоксе нет. Приходится крутиться |
Автор: | Trurl [ Вторник, 10 Июль, 2007 14:38 ] |
Заголовок сообщения: | |
Что-то я не понимаю: StdDialog.Open(GeoInputForm.New(), "Расчет азимута", NIL, "", NIL, TRUE, FALSE, TRUE, FALSE, TRUE); GeoInputForm.New() - это вызов процедуры из модуля GeoInputForm? Судя по тому, что написано дальше -нет. Подразумевается открытие документа с формой (а New() просто придумано). Значит и нужно указать имя документа. Скорее всего это "Geo/Rsrc/InputForm". |
Автор: | Trurl [ Вторник, 10 Июль, 2007 14:44 ] |
Заголовок сообщения: | |
Чтобы не было главного окна, запускать с флагом /NOAPPWIN. |
Автор: | alobo [ Вторник, 10 Июль, 2007 14:54 ] |
Заголовок сообщения: | |
Trurl писал(а): Что-то я не понимаю: Это я не понимаю... Trurl писал(а): Подразумевается открытие документа с формой (а New() просто придумано). Значит и нужно указать имя документа. Скорее всего это "Geo/Rsrc/InputForm".
Так и есть. Но я начинал с имени документа, а New добавил уже от безысходности и тоже без результата... Надо попробовать по совету Ivor StdCmds.OpenToolDialog... |
Автор: | Trurl [ Вторник, 10 Июль, 2007 15:14 ] |
Заголовок сообщения: | |
alobo писал(а): Так и есть. Но я начинал с имени документа, а New добавил уже от безысходности и тоже без результата... Так имя же надо в кавычки брать. Цитата: Надо попробовать по совету Ivor StdCmds.OpenToolDialog...
Там тоже надо имя указывать. |
Автор: | alobo [ Вторник, 10 Июль, 2007 15:42 ] |
Заголовок сообщения: | |
Trurl писал(а): Так имя же надо в кавычки брать.
Там тоже надо имя указывать. Семён Семеныч! Ну конечно, моя ошибка! Поправил, конфиг скомпилился, но все равно криво получается. Запускаю ББ командой BlackBox /USE c:\varia\programming\Geo - ничего не происходит (у меня там копии всех модулей ББ). Создаю вложенную папочку Geo, переношу туда свои модули, ввожу BlackBox /USE c:\varia\programming\Geo\Geo ББ запускается, компилирую свои модули и конфиг, создается еще одна папка: c:\varia\programming\Geo\Geo\Geo\Code и конечно Sym и вот так все работает.... |
Автор: | Info21 [ Вторник, 10 Июль, 2007 17:46 ] |
Заголовок сообщения: | |
alobo писал(а): Запускаю ББ командой
BlackBox /USE c:\varia\programming\Geo - ничего не происходит (у меня там копии всех модулей ББ Надо в ярлыке еще в поле Start in прописать c:\varia\programming\Geo Что-то все на эти грабли наступают. Вроде, образец ярлыка был дан.... Или речь не о том? |
Автор: | alobo [ Среда, 11 Июль, 2007 06:55 ] |
Заголовок сообщения: | |
info21 писал(а): Надо в ярлыке еще в поле Start in прописать c:\varia\programming\Geo
Так я еще до ярлыка не дошел - запускаю из командной строки. При запуске из ярлыка ББ не находит моего конфига - тот лежит в Geo\Geo\Code. А если скомпилировать конфиг еще раз, он создает .ocf файл в основном директории c:\Program Files\BlackBox.... 1.5\System\Code, а мне хотелось сохранить вармант основных настроек.... |
Автор: | alobo [ Среда, 11 Июль, 2007 07:30 ] |
Заголовок сообщения: | Запуск приложения без открытия окна BlackBox |
Чудеса, да и только! Скопировал Config.ocf из Geo\Geo\Code в Geo\System\Code, теперь при запуске строкой BlackBox /USE c:\varia\programming\Geo запускается приложение, главное окно не открывается. Если запустить так: BlackBox /USE c:\varia\programming\Geo\Geo приложение открывается в окне ББ в режиме Tool Dialog. А ведь конфиг один и тот же, только размещен в другом месте. Если запустить из ярлыка, где Start in = c:\varia\programming\Geo открывается стандартное окно ББ и лог. То есть читается стандартный конфиг ББ и только при открытии файла предлагается директорий Geo, а не основной директорий ББ. |
Автор: | Александр Ильин [ Среда, 11 Июль, 2007 07:51 ] |
Заголовок сообщения: | |
Если хочешь, чтобы тебе действительно помогли разобраться, приводи полную информацию. А то у тебя одни пути в сообщениях абсолютные, а другие - относительные. Относительно чего - не указываешь. Кроме того, не понятно, из какого каталога ты это все запускаешь командной строкой. Составь карту путей в одном сообщении - где что находится и откуда запускается, и сразу всё встанет на свои места. Иначе приходится гадать, где ты намудрил, а нечёткостью сообщений ты оставляешь слишком много вариантов. |
Автор: | alobo [ Среда, 11 Июль, 2007 08:49 ] |
Заголовок сообщения: | |
Александр Ильин писал(а): Если хочешь, чтобы тебе действительно помогли разобраться, приводи полную информацию. Приношу извинения, еще не освоил все правила.... ББ стоит стандартно: c:\Program Files\BlackBox Component Builder 1.5\ Все скопировано в папку c:\varia\programming\Geo В ней же создал свои файлы GeoCalc.odc GeoInputForm.odc В результате компиляции возникли папки c:\varia\programming\Geo\Geo\Code и ... ... ... ... ... .... ... ... ... \Sym Уже руками создал папки Mod и Rsrc перенес туда свои файлы с переименованием в Calc.odc InputForm.odc. запускаю ББ строкой c:\Program Files\BlackBox Component Builder 1.5\BlackBox /USE c:\varia\programming\Geo\Geo Здесь редактирую конфиг c:\varia\programming\Geo\System\Mod\Config.odc. Ввел строку StdCmds.OpenToolDialog('Geo/Rsrc/InputForm', "Расчет азимута") Компилирую конфиг - появляется файл Config.ocf в папке c:\varia\programming\Geo\Geo\Code\ после этого компилирую свой файл c:\varia\programming\Geo\Geo\Mod\Calc.odc. В результате компиляции создалась еще одна вложенная папка c:\varia\programming\Geo\Geo\Geo\Code После лихорадочных экспериментов скопировал Config.ocf в папку c:\varia\programming\Geo\System\Code и получил такое поведение Цитата: при запуске строкой из директория c:\Program Files\BlackBox Component Builder 1.5\
BlackBox /USE c:\varia\programming\Geo запускается приложение, главное окно не открывается. Если запустить так: BlackBox /USE c:\varia\programming\Geo\Geo приложение открывается в окне ББ в режиме Tool Dialog. А при запуске из ярлыка вообще открывается только стандартное окно ББ в любом случае... |
Автор: | alobo [ Среда, 11 Июль, 2007 09:05 ] |
Заголовок сообщения: | |
Все - ярлык работает. Скопировал BlackBox.exe в c:\varia\programming\Geo и создал новый ярлык. Теперь запускается только мой GeoCalc без главного окна. С командной строкой по-старому.... |
Автор: | Александр Ильин [ Среда, 11 Июль, 2007 09:14 ] |
Заголовок сообщения: | |
alobo писал(а): Приношу извинения, еще не освоил все правила.... Ну, это так, общие соображения, касающиеся любой попытки разобраться в чем-либо. Особенно если привлекаешь посторонних к этому процессу : ) alobo писал(а): Все скопировано в папку
c:\varia\programming\Geo ... запускаю ББ строкой c:\Program Files\BlackBox Component Builder 1.5\BlackBox /USE c:\varia\programming\Geo\Geo Вот и ошибка стала видна: после /use нужно указывать тот же каталог, в который "всё скопировано". Например: - пусть BlackBox установлен в C:\BlackBox - разрабатываемое тобой приложение с подсистемами и ресурсами находится в D:\Geo Тогда твоя подсистема должна находиться в каталогах D:\Geo\Geo\Mod - исходники (в твоем случае Calc.odc, а не GeoCalc.odc) D:\Geo\Geo\Code - скомпилированные модули D:\Geo\Geo\Sym - интерфейсы модулей D:\Geo\Geo\Rsrc - ресурсы: меню (Menus.odc), строки (Strings.odc) и формы (InputForm.odc, а не GeoInputForm.odc) D:\Geo\System\Mod\Config.odc - исходник конфигурации; при его компиляции будут созданы файлы D:\Geo\Code\Config.ocf и D:\Geo\Sym\Config.osf Запускать это все нужно, находясь в каталоге D:\Geo командой C:\BlackBox\BlackBox.exe /use D:\Geo (а не D:\Geo\Geo). Тут возникает некоторая путаница из-за того, что у тебя совпадает имя каталога программы и имя твоей подсистемы. После параметра /use нужно передавать первое, а не второе. |
Автор: | Александр Ильин [ Среда, 11 Июль, 2007 09:19 ] |
Заголовок сообщения: | |
alobo писал(а): Все скопировано в папку c:\varia\programming\Geo Кстати, по поводу общего подхода. Обычно делают одно из двух: либо всё копируют и не заморачиваются с командными строками и ярлыками, либо делают ярлык на некое место, где размещают только файлы проекта, а не копию BlackBox. Иногда эти подходы комбинируются, тогда в проект копируется часть файлов BlackBox, но только та часть, которую требуется изменить для нужд конкретного проекта (например, модуль Config). alobo писал(а): Все - ярлык работает. Скопировал BlackBox.exe в c:\varia\programming\Geo и создал новый ярлык. Теперь запускается только мой GeoCalc без главного окна.
С командной строкой по-старому.... То есть, ты создал полную копию BlackBox плюс добавил свои файлы? Ну и плюнь ты тогда на эти /USE. : ) |
Автор: | alobo [ Среда, 11 Июль, 2007 09:25 ] |
Заголовок сообщения: | |
Александр Ильин - спасибо за обстоятельное объяснение. Постепенно начинаю осваивать логику среды. К ошибке подталкивает windows: в командной строке при наборе c:\Program Files\... возникает ошибка, приходится cd c:\Program Fi.... Хотя можно было набрать путь в даблквотах.... |
Автор: | Александр Ильин [ Среда, 11 Июль, 2007 09:29 ] |
Заголовок сообщения: | |
alobo писал(а): Александр Ильин - спасибо за обстоятельное объяснение. Постепенно начинаю осваивать логику среды. Всегда пожалуйста! : ) alobo писал(а): К ошибке подталкивает windows: в командной строке при наборе c:\Program Files\... возникает ошибка, приходится cd c:\Program Fi....
Хотя можно было набрать путь в даблквотах.... Да, двойные кавычки надо использовать. |
Автор: | alobo [ Среда, 11 Июль, 2007 09:33 ] |
Заголовок сообщения: | |
Александр Ильин писал(а): ... Обычно делают одно из двух: либо всё копируют и не заморачиваются с командными строками и ярлыками, либо делают ярлык на некое место, Хотелось создать место для экспериментов, а основную среду оставить в неприкосновенности... Цитата: То есть, ты создал полную копию BlackBox плюс добавил свои файлы? Ну и плюнь ты тогда на эти /USE. : ) Уже плюнул Впереди более интересное - DevLinker....[/quote] |
Автор: | Евгений Темиргалеев [ Среда, 11 Июль, 2007 10:00 ] |
Заголовок сообщения: | |
alobo писал(а): Хотелось создать место для экспериментов, а основную среду оставить в неприкосновенности... Не так уж это и сложно. Этот подход чуть больше усилий и удобства от него их с лихвой перевешивают. Когда закончите с интересным, стоит вернуться к этой теме.
Для себя делаю так: есть отдельная папка (напр: E:\Blackbox), в которой лежат разные сборки ББ (русская/анлийская, 1.5/1.6 и т. п) (E:\Blackbox\En, E:\Blackbox\Ru и т. п). Чтобы писать команды без кавычек - имена папок без пробелов. Где-то лежит рабочая папка (напр. E:\Work). Там и мои подсистемы, и подправленные файлы из стандартных подсистем. Сюда же я добавляю доп. подсистемы из CPC (напр, CpcBeautifier - удобная вещь). Запуск - в рабочей папке лежит командный файл bb.cmd: Код: start e:\BlackBox\Ru\BlackBox.exe /use E:\Work
Запускаем его из рабочей папки, она является текущей и все ок. Т. о. можно быстро подменить базовую сборку, либо сменить рабочую папку. Мне как-то привычнее править в текстовом редакторе, нежели в свойствах ярлыка... Чтобы запускалось из любой папки, достаточно добавить команды перехода смены диска и перехода в рабочую папку. |
Автор: | alobo [ Четверг, 12 Июль, 2007 07:56 ] |
Заголовок сообщения: | |
Евгений Темиргалеев - спасибо. И себе так сделал, очень удобно! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |