OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 13:44

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ] 
Автор Сообщение
СообщениеДобавлено: Вторник, 10 Июль, 2007 13:18 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Уважаемые гуру!

Сваял свою первую программу, состоит из расчетного модуля и формы для ввода исходных данных.
Запускаю:
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 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Чтобы программно открывать диалоги существует процедура StdCmds.OpenToolDialog. Вообще в модуле StdCmds есть достаточно полезные процедуры.

Что касается главного окна - полноценного SDI в Блэкбоксе нет. Приходится крутиться :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 10 Июль, 2007 14:38 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Что-то я не понимаю:
StdDialog.Open(GeoInputForm.New(), "Расчет азимута", NIL, "", NIL, TRUE, FALSE, TRUE, FALSE, TRUE);
GeoInputForm.New() - это вызов процедуры из модуля GeoInputForm? Судя по тому, что написано дальше -нет. Подразумевается открытие документа с формой (а New() просто придумано). Значит и нужно указать имя документа. Скорее всего это "Geo/Rsrc/InputForm".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 10 Июль, 2007 14:44 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Чтобы не было главного окна, запускать с флагом /NOAPPWIN.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 10 Июль, 2007 14:54 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Trurl писал(а):
Что-то я не понимаю:


Это я не понимаю...


Trurl писал(а):
Подразумевается открытие документа с формой (а New() просто придумано). Значит и нужно указать имя документа. Скорее всего это "Geo/Rsrc/InputForm".


Так и есть. Но я начинал с имени документа, а New добавил уже от безысходности и тоже без результата...

Надо попробовать по совету Ivor StdCmds.OpenToolDialog...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 10 Июль, 2007 15:14 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
alobo писал(а):
Так и есть. Но я начинал с имени документа, а New добавил уже от безысходности и тоже без результата...

Так имя же надо в кавычки брать.

Цитата:
Надо попробовать по совету Ivor StdCmds.OpenToolDialog...

Там тоже надо имя указывать. ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 10 Июль, 2007 15:42 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Trurl писал(а):
Так имя же надо в кавычки брать.


Там тоже надо имя указывать. ;)


Семён Семеныч! Ну конечно, моя ошибка!

Поправил, конфиг скомпилился, но все равно криво получается.

Запускаю ББ командой

BlackBox /USE c:\varia\programming\Geo - ничего не происходит (у меня там копии всех модулей ББ). Создаю вложенную папочку Geo, переношу туда свои модули, ввожу
BlackBox /USE c:\varia\programming\Geo\Geo

ББ запускается, компилирую свои модули и конфиг, создается еще одна папка:

c:\varia\programming\Geo\Geo\Geo\Code и конечно Sym

и вот так все работает....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 10 Июль, 2007 17:46 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
alobo писал(а):
Запускаю ББ командой

BlackBox /USE c:\varia\programming\Geo - ничего не происходит (у меня там копии всех модулей ББ


Надо в ярлыке еще в поле Start in прописать c:\varia\programming\Geo

Что-то все на эти грабли наступают.
Вроде, образец ярлыка был дан....

Или речь не о том?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 06:55 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
info21 писал(а):
Надо в ярлыке еще в поле Start in прописать c:\varia\programming\Geo



Так я еще до ярлыка не дошел - запускаю из командной строки. При запуске из ярлыка ББ не находит моего конфига - тот лежит в Geo\Geo\Code. А если скомпилировать конфиг еще раз, он создает .ocf файл в основном директории c:\Program Files\BlackBox.... 1.5\System\Code, а мне хотелось сохранить вармант основных настроек....


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 11 Июль, 2007 07:30 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Чудеса, да и только!

Скопировал 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 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Если хочешь, чтобы тебе действительно помогли разобраться, приводи полную информацию. А то у тебя одни пути в сообщениях абсолютные, а другие - относительные. Относительно чего - не указываешь. Кроме того, не понятно, из какого каталога ты это все запускаешь командной строкой. Составь карту путей в одном сообщении - где что находится и откуда запускается, и сразу всё встанет на свои места. Иначе приходится гадать, где ты намудрил, а нечёткостью сообщений ты оставляешь слишком много вариантов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 08:49 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Александр Ильин писал(а):
Если хочешь, чтобы тебе действительно помогли разобраться, приводи полную информацию.


Приношу извинения, еще не освоил все правила....

ББ стоит стандартно:

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.


А при запуске из ярлыка вообще открывается только стандартное окно ББ в любом случае...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 09:05 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Все - ярлык работает. Скопировал BlackBox.exe в c:\varia\programming\Geo и создал новый ярлык. Теперь запускается только мой GeoCalc без главного окна.

С командной строкой по-старому....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 09:14 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
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 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
alobo писал(а):
Все скопировано в папку
c:\varia\programming\Geo

Кстати, по поводу общего подхода. Обычно делают одно из двух: либо всё копируют и не заморачиваются с командными строками и ярлыками, либо делают ярлык на некое место, где размещают только файлы проекта, а не копию BlackBox. Иногда эти подходы комбинируются, тогда в проект копируется часть файлов BlackBox, но только та часть, которую требуется изменить для нужд конкретного проекта (например, модуль Config).

alobo писал(а):
Все - ярлык работает. Скопировал BlackBox.exe в c:\varia\programming\Geo и создал новый ярлык. Теперь запускается только мой GeoCalc без главного окна.

С командной строкой по-старому....

То есть, ты создал полную копию BlackBox плюс добавил свои файлы? Ну и плюнь ты тогда на эти /USE. : )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 09:25 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Александр Ильин - спасибо за обстоятельное объяснение. Постепенно начинаю осваивать логику среды.

К ошибке подталкивает windows: в командной строке при наборе c:\Program Files\... возникает ошибка, приходится cd c:\Program Fi....

Хотя можно было набрать путь в даблквотах....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 09:29 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
alobo писал(а):
Александр Ильин - спасибо за обстоятельное объяснение. Постепенно начинаю осваивать логику среды.

Всегда пожалуйста! : )

alobo писал(а):
К ошибке подталкивает windows: в командной строке при наборе c:\Program Files\... возникает ошибка, приходится cd c:\Program Fi....

Хотя можно было набрать путь в даблквотах....

Да, двойные кавычки надо использовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 09:33 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Александр Ильин писал(а):
...
Обычно делают одно из двух: либо всё копируют и не заморачиваются с командными строками и ярлыками, либо делают ярлык на некое место,


Хотелось создать место для экспериментов, а основную среду оставить в неприкосновенности...
Цитата:
То есть, ты создал полную копию BlackBox плюс добавил свои файлы? Ну и плюнь ты тогда на эти /USE. : )

Уже плюнул :) Впереди более интересное - DevLinker....[/quote]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 10:00 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
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

Запускаем его из рабочей папки, она является текущей и все ок. Т. о. можно быстро подменить базовую сборку, либо сменить рабочую папку. Мне как-то привычнее править в текстовом редакторе, нежели в свойствах ярлыка...

Чтобы запускалось из любой папки, достаточно добавить команды перехода смены диска и перехода в рабочую папку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 12 Июль, 2007 07:56 

Зарегистрирован: Понедельник, 09 Июль, 2007 12:15
Сообщения: 10
Откуда: г. Самара
Евгений Темиргалеев - спасибо. И себе так сделал, очень удобно!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB