:: Visual Foxpro, Foxpro for DOS
Re: вопрос по гриду
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
akvvohinc
Цитата:
SET DEFAULT TO (goApp.cPathWork)
Чему у вас равно значение этого свойства?
Там задан абсолютный или относительный путь?

Читает в Setup.ini , а там руками задается
но! Setup.ini лежит в другом каталоге, в ярлыке указывается рабочая папка, и он ее находит. Возможно, при запуске из фокса не видит этот файл
Ratings: 0 negative/0 positive
Re: вопрос по гриду
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
в общем , такая конструкция:

PathSystem = d:\work\projeckt\project.app && основной модуль
PathWork= d:\users\username\project\project.app
MainApp=project.app
d:\work\start\start.exe - запуск

файл setup.ini лежит в d:\users\username\project\project.app
что нужно смотреть этот файл при запуске понимает из ярлыка, где указана рабочая папка.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
DmitryKn
Читает в Setup.ini , а там руками задается
Не понимаю.
У вас обращение к Setup.ini уже идет через свойство goApp.cPathWork.

Вот где у вас происходит создание объекта и инициализация его свойств.
goApp = CREATEOBJECT('APP')

Цитата:
в ярлыке указывается рабочая папка,
Вот эту папку, указанную в ярлыке, и надо сделать текущей перед запуском EXE из Фокса.
Как - я написал выше.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
ну я это сразу попробовал, только Арр лежит в другой папке и фокс генерит ошибку file d:\ users\username\project\appgen.vcx (это класс в приложении start, в этом классе Арр ) does not exist
запускаю main.prg если запускать start.exe какие то каракули в новом окне и все
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
DmitryKn
фокс генерит ошибку file d:\ users\username\project\appgen.vcx (это класс в приложении start, в этом классе Арр ) does not exist
Так эта ошибка выдается по делу или нет?
На самом деле appgen.vcx лежит в папке d:\ users\username\project\ ?

Если эту ошибку вы получаете при запуске исходников, то выше я написал - эта проблема решается перечислением всех нужных путей в настройке PATH или команде SET PATH.

DmitryKn
ну я это сразу попробовал
Как именно?
Что вы сделали, чтобы эта папка стала текущей и проверили ли вы перед запуском, стала ли она текущей.

Вы бы описали по шагам более подробно, что вы делаете при запуске start.exe в случае, когда хотите воспользоваться дебаггером.



Исправлено 1 раз(а). Последнее : akvvohinc, 20.11.22 21:06
Ratings: 0 negative/0 positive
Re: вопрос по гриду
DmitryKn
Автор

Сообщений: 300
Дата регистрации: 06.04.2022
akvvohinc
DmitryKn
фокс генерит ошибку file d:\ users\username\project\appgen.vcx (это класс в приложении start, в этом классе Арр ) does not exist
Так эта ошибка выдается по делу или нет?
На самом деле appgen.vcx лежит в папке d:\ users\username\project\ ?

на самом деле он лежит в папке d:\work\start\ где находится start.exe, в этом приложении находится класс APPGEN, где и задаются пути:
SET CLASSLIB TO APPGEN
PUBLIC goApp,gcMainApp
goApp = CREATEOBJECT('APP')
SET DEFAULT TO (goApp.cPathWork)

класс APPGEN содержит АРР, который я тут и объявляю, а в нем cPathWork считывается из Setup.ini , в котором указано руками. Лежит этот сетап в папке d:\ users\username\project\ и в нем же приложение project.app - то. что я назвал основной модуль. Его открывают пользователи. Такое же приложение project.app лежит в PathSystem = d:\work\projeckt\project.app , его я редактирую и тут же лежит dbc со всеми таблицами. После редактирования и компиляции прри запуске start.exe пользователем , если есть отличия по дате-времени редактирования приложение копируется в d:\ users\username\project\ .. Этот фрагмент я привел выше.

Запускать пробовал так:
1.Открываю фокс без проекта, в командном окне set default to ... и тут все эти пути перепробовал.
2.В командном окне DO и путь до main.prg Пробовал для обоих приложений, но во всех случаях возникает ошибка, не находит этот класс.

В setup.ini задаются пути pathwork = d:\users\username\project\ - тут лежит project.app, основной модуль, и pathsystem = d:\work\projeckt\ - тут БД и все папки с формами, классами и т.п.

В командном окне я задаю только set default to и какой-либо из этих путей, и этого явно не хватает, и никак к концу дня уже не соображу, может куда-то setup.ini просто скопировать..
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Запускать пробовал так:
Могу только повторить - если вы запускаете исходники (DO main.prg), то все необходимые пути должны быть предварительно перечислены в PATH или SET PATH (я пишу об этом уже третий, кажется, раз, но вы ни разу никак на это не прореагировали!).
Без этого Фокс не найдет ни вашу библиотеку классов (AppGen.vcx), ни MainApp, так как они не лежат в текущей папке, ни другие компоненты (например, UpgrApp и т.п.), которые также не лежат в текущей папке.
Найдется лишь то, к чему вы обращаетесь с помощью путей, остальное Фокс не найдёт, пока вы не зададите в PATH путь к папке, где это лежит.
К тому, что у вас включено в MainApp, пути прописывать не надо, раз вы вызываете сам APP.

При запуске EXE все это находится, так как включено - что-то в проект для EXE, а что-то в проект для APP, и, соответственно, попало или в EXE, или в APP.

Цитата:
В командном окне я задаю только set default to и какой-либо из этих путей, и этого явно не хватает, и никак к концу дня уже не соображу, может куда-то setup.ini просто скопировать..
При запуске исходников всё это не поможет - см. выше.
--------------

Ладно, раз с исходниками для вас оказалось сложно, то попробуйте завтра с EXE.
Выполните аккуратно всё, что я написал ниже, а потом напишите, где "затык", если он произойдет.

1) Запустите Фокс
2) В нужное место программы, входящей в ваш APP, добавьте команду Suspend

3) Далее в командном окне:
4) Установите текущую папку в значение, равное рабочей папке ярлыка, запускающего start.exe:
SET DEFAULT TO "<полный путь к папке>"
5) Проверьте, что текущая папка стала такой, как нужно:
? SYS(5)+CURDIR()
6) Запустите EXE командой DO start.exe (c путем, если EXE не лежит в текущей папке)
7) Если программа запустилась и работает, то через её интерфейс идите туда, где вы поставили Suspend.
Если что-то не так (раньше вы писали о каких-то дефектах изображения), то выложите скриншот.
8) Если команда Suspend будет выполнена, программа остановится, вы окажетесь в командном окне Фокса
9) наберите и выполните команду DEBUG - появится дебаггер.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
Чтобы было понятно с отладчиком, следует пояснить, что сама по себе отладка возможна только в среде разработки FoxPro. Debugger - это инструмент разработки. В Run-Time (готовом EXE) запуск отладчика невозможен.

Максимум, что можно получить в Run-Time - это информацию по строке, где произошла ошибка. Да и то, только в случае, если на этапе создания EXE не снимали галку "Debug Info" (пункт меню Project -> Project Info -> Закладка Project -> Debug Info). Эта галка может сильно увеличить размер EXE-файла. Поэтому, как правило, ее не ставят.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
Каратаев

Сообщений: 3977
Откуда: Алматы
Дата регистрации: 04.12.2001
Владимир Максимов
Максимум, что можно получить в Run-Time - это информацию по строке, где произошла ошибка. Да и то, только в случае, если на этапе создания EXE не снимали галку "Debug Info" ...
В этом случае может помочь обработчик ошибок ON ERROR. Желательно писать свой, конечно...


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
В Run-Time (готовом EXE) запуск отладчика невозможен.
В нашем случае проблема не с EXE, а с вызываемым из него APP, который не входит в EXE, а поэтому отладка возможна.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Каратаев
Владимир Максимов
Максимум, что можно получить в Run-Time - это информацию по строке, где произошла ошибка. Да и то, только в случае, если на этапе создания EXE не снимали галку "Debug Info" ...
В этом случае может помочь обработчик ошибок ON ERROR. Желательно писать свой, конечно...

...Незнаю, вернет ли ASTACKINFO(ArrayName) номер строки (и текст проги) в компиляции без галки Debag... И что мешает скомпилять сначала с галкой, а "на гора" выдавать без галки...
Ratings: 0 negative/0 positive
Re: вопрос по гриду
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
akvvohinc
Цитата:
В Run-Time (готовом EXE) запуск отладчика невозможен.
В нашем случае проблема не с EXE, а с вызываемым из него APP, который не входит в EXE, а поэтому отладка возможна.

Я из IDE запускаю экзешник (не APP, хотя, какая разница!), и дебагер видит исходник (PJX/PJT и файлы, на которые он указывает). Но видит не всегда. заметил, что:
- если запустить фокс и в нем Ctrl-D и произвольный EXE (рядом с которым лежит и проект), то в при исполнении в команде SET STEP ON можно получить "Соурке оут оф ранге", т.е исходник не виден
- если скомпилять проект в экзешник, и тут же запустить его Ctrl-D, то на SET STEP ON отладчик видит исходный код!
- естественно, компилировать надо с галкой "Debug...", иначе нелогично )
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
of63
если запустить фокс и в нем Ctrl-D и произвольный EXE (рядом с которым лежит и проект), то в при исполнении в команде SET STEP ON можно получить "Соурке оут оф ранге", т.е исходник не виден
Так не надо править исходник после сборки EXE.
А если уж поправил, то пересобери EXE.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Владимир Максимов
Цитата:
В Run-Time (готовом EXE) запуск отладчика невозможен.
akvvohinc
В нашем случае проблема не с EXE, а с вызываемым из него APP, который не входит в EXE, а поэтому отладка возможна.
Не на те слова я обратил внимание - пропустил "Run-Time" мимо ушей.
Конечно, для отладки EXE надо запускать из-под Фокса.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
akvvohinc
of63
если запустить фокс и в нем Ctrl-D и произвольный EXE (рядом с которым лежит и проект), то в при исполнении в команде SET STEP ON можно получить "Соурке оут оф ранге", т.е исходник не виден
Так не надо править исходник после сборки EXE.
А если уж поправил, то пересобери EXE.

() не из-за правки, скорее всего (разрабы фокса отмечают даты файлов, типа, если дата fxp ранее соотв. prg, то они что-то напишут, или прога повесится... это довольно точно. Ну, сам знаешь, когда надо исполнять прогу (псевдокод), да еще отслеживать исходный текст... где-то "накосячили"... Вообще разрабам фокса под винду большой респект, проделана громадная работа... жалко, что не в мейнстриме оказалась... хотя, ниша у фокса до сих пор остается! )
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
не из-за правки, скорее всего
А какая последовательность действий, кроме правки PRG, приводит в этом случае к сообщению:
Source is out of date
?
Ratings: 0 negative/0 positive
Re: вопрос по гриду
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Это вопрос к разрабам. Я привел последовательность действий, которая позволяет отлаживать один проект (не два, как у ТС). Как отлажиывать сразу два проекта я не знаю.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Я не про это.

Ты написал, что Source is out of date возникает не из-за правки PRG.
Я других вариантов с ходу привести не могу (ручная правка даты/времени PRG не считается).
А мне показалось, что ты знаешь и другие способы этого добиться.
Ratings: 0 negative/0 positive
Re: вопрос по гриду
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Да не знаю! ) Привел способы, которые работают (и неработающие). Я так и сказал изначально - хз, где фокс (разрабы его) ищут текстовые фпйлы с "строкаим" (там строк нет, просто ищут строку в тестовом файле). Вы фокс, разрабов, тоже поймите. Войдите в проблему - вы запускаете в IDE обычны PRG например однострочную - содержащую "хеллоу верд". Посмотрите, что же в том PJX... какие действия вы предпримете, когда вам представят для запуска файл экхе, или апп (оба компилированные). ГДЕ ФОКС будет искать тексты программ (их нет в фхп-шках) с номерами строк, поставьте себя на место процессора команд фокса

Доб. Вобщем:
- флаг "Debag Info" убирать не надо, если вы не придурки будете дабажить свой код
- не стоит надеяться на совершенный механизм поиска строк кода (файлов проекта, и сам проект pjx/pjt), в фоксе нет механизма, чтобы явно указать на источник (на проект)
- если что - пишите вместо точек останова "вайтики" (WAIT TRANS(переменная) WINDO...) некоторым нравится. Все по-разному отлаживают свою лажу )



Исправлено 1 раз(а). Последнее : of63, 21.11.22 22:47
Ratings: 0 negative/0 positive
Re: вопрос по гриду
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Посмотрите, что же в том PJX... какие действия вы предпримете, когда вам представят для запуска файл экхе, или апп (оба компилированные). ГДЕ ФОКС будет искать тексты программ (их нет в фхп-шках) с номерами строк, поставьте себя на место процессора команд фокса
Я поставил себя на место процессора и решил искать тексты в файлах PRG.
Если не найду, напишу Source not available.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 21 (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика