|
НЕ ИКСУЕТСЯ
|
|||
---|---|---|---|
#18+
VISUAL FOXPRO 5.0 ПОЧЕМУ КОГДА Я ДЕЛАЮ exe ФАЙЛ ОН НЕ ЗАПУСКАЕТСЯ ВЕРНЕЕ ЗАПУСКАЕТСЯ ПОЯВЛЯЕТСЯ НА МГНОВЕНИЕ ОКНО И ИСЧЕЗАЕТ. ЕСТЬ-ЛИ У КОГО КАКИЕ СООБРАЖЕНИЯ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2003, 09:42 |
|
НЕ ИКСУЕТСЯ
|
|||
---|---|---|---|
#18+
Предполагаю, что напрочь отсутствует READ EVENTS. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2003, 09:45 |
|
НЕ ИКСУЕТСЯ
|
|||
---|---|---|---|
#18+
Все никак не соберусь выложить =========================== Три наиболее часто встречающиеся вопросы новичков. Звучат они приблизительно так: Пока я отлаживал приложение в среде FoxPro - все было нормально, но как только создал EXE (или APP) и запустил его, то: 1) Окно FoxPro мелькает на экране и тут же закрывается 2) Не могу выйти из FoxPro. Закрыть приложение. Либо появляется сообщение "Cann't quit Visual FoxPro", либо приложение продолжает висеть в окне задач, хотя на экране ничего не видно 3) При попытке изменить данные в рабочих таблицах появляется сообщение "Cursor is read-only" Еще раз обращаю внимание, что эти ошибки возникли в готовом EXE (APP), а не на этапе отладки. ******************************* 1) Окно FoxPro мелькает на экране и тут же закрывается ******************************* Ошибка связана с тем, что не была организована точка останова приложения. Т.е. FoxPro пребывает в недоумении в какой момент необходимо остановиться, чтобы подождать реакции пользователя. На этапе отладки такой точкой останова была сама среда FoxPro, но в готовом EXE ее нет. Стандартным способом организации точки останова является использование команды READ EVENTS. Как правило, в качестве главного запускающего объекта используется файл PRG и в нем пишется примерно следующий код: ... * Предварительные настройки среды FoxPro ... DO MainMenu.mpr DO FORM MainForm.SCX READ EVENTS ... * Операции по завершению приложения FoxPro и возврату среды в исходное состояние ... В данном случае использовано одновременная загрузка и главного меню в основном окне FoxPro и запуск некой стартовой формы. При этом предполагается, что форма НЕ модальная (WindowType=0-Modeless). Выполнение данной процедуры будет остановлено на команде READ EVENTS. Что и позволит работать пользователям в готовом EXE. При подаче в любом месте программы команды CLEAR EVENTS FoxPro автоматически перейдет к выполнению команд, следующих за READ EVENTS, выполнение главной стартовой программы завершится и приложение FoxPro будет закрыто. Таким образом, для закрытия приложения необходимо: -) При использовании главного окна FoxPro с главным управляющим меню предусмотреть в этом меню пункт "Выход", в котором и дать команду CLEAR EVENTS -) Если главное окно FoxPro не используется (например, при работе с формами ShowWindow=2 - As Top-Level Form), то команду CLEAR EVENTS следует дать при закрытии формы. Лучше всего в событии UNLOAD-формы -) Для не штатных режимов закрытия приложения прочитать ответ на следующий вопрос ******************************* 2) Не могу выйти из FoxPro. Закрыть приложение. Либо появляется сообщение "Cann't quit Visual FoxPro", либо приложение продолжает висеть в окне задач, хотя на экране ничего не видно ******************************* Данный вопрос напрямую связан с предыдущим. Дело в том, что при описании выхода из программы в предыдущем вопросе рассмотрен только штатный способ, когда и программист и пользователь все делали "как положено". Если приложение FoxPro было закрыто, но тем не менее осталось висеть в списке задач (Task Manager открывающийся по Ctrl+Alt+Del), то это значит, что программист не дал команды CLEAR EVENTS. Сообщение же "Cann't quit Visual FoxPro" появляется при попытке закрыть приложение нажав на крестик в правом верхнем углу основного окна FoxPro или нажав кнопку "End Task" в Task Manager. Для перехвата этого события в FoxPro предусмотрена настройка ON SHUTDOWN. Т.е. в главной стартовой программе получается примерно такой код: ... * Предварительные настройки среды FoxPro * И настройка не штатного выхода из программы ON SHUTDOWN Do ExitProg ... DO MainMenu.mpr DO FORM MainForm.SCX READ EVENTS ... * Операции по завершению приложения FoxPro и возврату среды в исходное состояние * И сброс настройки по не штатному выходу из программы ON SHUTDOWN ... PROCEDURE ExitProg IF MessageBox('Вы действительно хотите закрыть приложение?',4+32+256,'Закрытие приложения')=7 RETURN ENDIF ... * Действия по корректному закрытию всех открытых форм * и откату незавершенных изменений в базе данных ... CLEAR EVENTS RETURN ******************************* 3) При попытке изменить данные в рабочих таблицах появляется сообщение "Cursor is read-only" ******************************* Этот вопрос напрямую не связан с первыми двумя. Причин данной ошибки может быть несколько. а) Наиболее вероятная причина этой ошибки заключается в том, что Вы включили таблицу DBF внутрь EXE. Чтобы убедится в этом откройте окно вашего проекта и найдите нужную таблицу. Слева от имени таблицы должен стоять значек перечеркнутого кружочка. Если это не так, то щелкните правой кнопкой мыши по имени таблицы и в появившемся меню выберите пункт "Exclude". После этого перекомпилите проект (заново постройте EXE). Включение какого-либо файла внутрь EXE осущетсвляется аналогично. Правой кнопкой мыши по имени и в открывшемся меню выбрать пункт "Include". Надо понимать, что включение какого-либо файла внутрь EXE означает, что этот файл становится частью EXE и его модификация недопустима. Это можно использовать как примитивный способ защиты своих данных, если эти данные предоставляются только на чтение. Соотсветсвенно, файл включенный внутрь EXE не надо поставлять клиенту (он и так находится внутри EXE). б) Еще одной причиной подобной ошибки может являтся перенос базы данных клиенту на лазерном диске. Дело в том, что в момент записи на лазерный диск всем файлам автоматически устанавливают признак Read-Only. Соответсвенно после копирования на жесткий диск к клиенту этот признак необходимо снять. Правой кнопкой мыши в "Проводнике" (Explorer-Windows) на имени файла, в появившемся меню выбрать пункт "Свойства" (Properties) и снять птичку "Только чтение" ("Read-Only"). Если предварительно выделить несколько файлов, то свойства будут распространены на все выделенные файлы. в) Более экзотическая причина - это настройка прав доступа пользователей. Возможно папка в которой расположены файлы DBF администратором была выдана в общее пользование со статусом Read-Only. В этом случае необходимо обратится к администратору с просьбой изменить права доступа. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2003, 16:03 |
|
НЕ ИКСУЕТСЯ
|
|||
---|---|---|---|
#18+
2ВладимирМ Предлагаю выложить в отдельную тему. И еще хорошо бы вопросы выделить, либо болдом, либо цветом. ЗЫ на очереди я так понимаю SCREEN=OFF и иконки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2003, 16:33 |
|
НЕ ИКСУЕТСЯ
|
|||
---|---|---|---|
#18+
В отдельную тему нет смысла - все-равно ведь "уедет" на другие страницы. В принципе, ее уже выложили http://kodu.neti.ee/~juri4/vfp60/faq_vm_ru.htm Хочу еще на nsvisual.com в решения запихнуть. А писать "глобальный" FAQ думаю нет смысла - судя по опыту разных конференций сначала "стреляют, а потом смотрят кто пришел" в смысле, сначала спросят и только потом, может быть воспользуются поиском. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2003, 17:36 |
|
|
start [/forum/topic.php?fid=41&fpage=418&tid=1598117]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 283ms |
total: | 410ms |
0 / 0 |