powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Хорошо это или плохо - переменные-ссылки на формы
3 сообщений из 3, страница 1 из 1
Хорошо это или плохо - переменные-ссылки на формы
    #36574534
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Если создавать меню, пункты которого будут непосредственно поднимать форму типа
Код: plaintext
ON BAR  1  OF Menu1 DO FORM Form1
то после выхода из такой формы путем вызова метода метода .Release() в окружении остается переменная по имени формы, т.е. Form1, со значением .NULL.

Вопрос - хорошо это или плохо?

С одной стороны при отладке это может указать на то, запускалась сия форма или нет за текущий сеанс, с другой - можно написать свой менеджер форм со всякими полезными прибамбасами, который исключит подобную ситуацию, а про запуск форм скажет куда больше...

спасибо.
...
Рейтинг: 0 / 0
Хорошо это или плохо - переменные-ссылки на формы
    #36574587
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 CTAC-KO,

непосредственный вызов из меню форм,
содержащих классы гридов с собственными классами
колонок и хедеров ведет к фатальной ошибке.

так что - в путь, комрад.

мой ответ: это плохо.
...
Рейтинг: 0 / 0
Хорошо это или плохо - переменные-ссылки на формы
    #36575050
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не хорошо и не плохо. Это есть. Фича такая.

Когда дается команда DO FORM, то происходит следующее:

1) Создается объект-форма
2) Создается переменная памяти, в которую записывается ссылка на созданный объект. По умолчанию, имя этой переменной совпадает с именем файла SCX, но может быть изменено в опции NAME

Для FoxPro принципиально важным является вопрос об области видимости этой самой созданной переменной. PUBLIC, PRIVATE, LOCAL. Т.е. момент, когда переменная будет автоматически удалена.

Если между переменной памяти и объектом-формой настроена взаимно-однозначное соответствие с использованием опции LINKED, то удаление переменной приведет к автоматическому удалению и собственно формы (если это единственная ссылка). По умолчанию, такой связи нет. Т.е. удаление переменной не вызовет удаление объекта-формы.

При прямом вызове из меню, вероятно, переменная получает область видимости PUBLIC. Вот и не удаляется по завершении команды DO FORM.

Ну, а оценка по принципу хорошо/плохо зависит от того, будет Вам как-то мешать эта болтающаяся глобальная переменная или нет.

В самой общей постановке наличие неких неконтролируемых программистом переменных - не есть хорошо. Особенно, если эти переменные глобальные. Особенно, если программистом не выработаны некие стандарты именования файлов приложения и переменных памяти. Не важно какие это правило, важно само наличие этих правил. Ну, чтобы как-нибудь случайно не обратится к этой не учтенной переменной, когда имелось в виду совсем другое.

Да, факт наличия/отсутсвия переменной ничем не поможет при отладке. Не известно ведь, когда именно запускалась эта форма. Только что или еще утром? Да и что вообще даст эта информация? Ну, запускалась. И что? Интересен ведь не сам факт запуска, а то, как форма отработала.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Хорошо это или плохо - переменные-ссылки на формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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