Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / удаление переменных RELEASE ? / 6 сообщений из 6, страница 1 из 1
28.05.2004, 10:17
    #32538064
ЕленаШ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление переменных RELEASE ?
Скажите, пожалуйста, непонятливому новичку - обязательно ли переменные следует удалять командой RELEASE при завершении программы
...
Рейтинг: 0 / 0
28.05.2004, 10:25
    #32538096
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление переменных RELEASE ?
Зависит от логики программы и области видимости переменных. В большинстве случаев, специально давать команду RELEASE нет необходимости.

Для уяснения, когда следует удалять переменные, а когда это не обязательно почитай описание к командам

LOCAL
PUBLIC
PRIVATE

Имей в виду, что если обалсть видимости переменной или массива не указана ЯВНО одной из перечисленных выше команд, то такая переменная или массив получают область видимости PRIVATE.

На этапе разработки, переменные или массивы созданные в командном окне получают область видимости PUBLIC.
...
Рейтинг: 0 / 0
28.05.2004, 11:25
    #32538321
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление переменных RELEASE ?
Иногда, исходя из логики программы, приходится выполнять release массивов, т.к. размерность массивов при переопределении не усекается до новых значений, если они меньше.

Еще был случай, когда release нужно было делать обязательно, но это исключение. У меня при бездействии пользователя (непрерывно в течении установленного времени приходит только пустое системное событие фокса) через некоторое время программа завершает работу. Если при этом открыто какое-то модальное окно (таких немного, но есть), то команда quit выдает что-то типа "Не могу завершить FoxPro". И все, только снимать задачу. Никакие clear all перед quit не помогают. Зато если явно выполнить release модального объекта, то все Ok :)
...
Рейтинг: 0 / 0
28.05.2004, 11:56
    #32538434
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление переменных RELEASE ?
размерность массивов при переопределении не усекается до новых значений, если они меньше.

По умолчанию, она как раз усекается. Если это не так, то это значит, что Вы игрались с настройкой SET COMPATIBLE не удосужившись ознакомиться со всеми последствиями такого шага.

команда quit выдает что-то типа "Не могу завершить FoxPro".

Для перехвата закрытия системы существует настройка

ON SHUTDOWN do MyProc

Т.е. при подаче команды QUIT, нажатии на крестик в правом верхнем углу основного окна FoxPro или по закрытии программы в Task Manager (Ctrl+Alt+Del) сработает поцедура MyProc. В которой как раз и нужно предусмотреть штатное закрытие всего открытого.

Никакие clear all перед quit не помогают. Зато если явно выполнить release модального объекта, то все Ok :)

Разумеется, не помогают, поскольку невозможно закрыть объект, пока выполняется какой-либо метод этого объекта. А вызов модальной формы как раз и приводит к "подвешиванию" метода, поскольку его выполнение приостанавливается на команде DO FORM.
...
Рейтинг: 0 / 0
28.05.2004, 12:22
    #32538530
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление переменных RELEASE ?
На счет SET COMPATIBLE - да, наверное. Сейчас OFF, но привычка...

А вот по поводу SHUTDOWN - именно quit процедуры, вызываемой по on shutdown и не работал. Другой процедуры выхода у меня нет. Может дело в том, что выход инициируется в данном случае из C-шной функции? Впрочем, сильно не разбирался, раз дело в модальных объектах, для их создания использую одну глобальную переменную, которую перед выходом явно удаляю, существует она в данный момент или нет. Работает, и ладно...
...
Рейтинг: 0 / 0
28.05.2004, 12:54
    #32538654
alexFV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление переменных RELEASE ?
авторА вот по поводу SHUTDOWN - именно quit процедуры, вызываемой по on shutdown и не работал
ON SHUTDOWN DO MyQuit()
У меня тоже не работало пока я не сделал файл MyQuit. Все отлично работает!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / удаление переменных RELEASE ? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]