powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Дестрой у формы выполняется, а у её компонентов не выполняется!
17 сообщений из 42, страница 2 из 2
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772095
this.oRightClick = CREATEOBJECT("empty")
ADDPROPERTY(this.oRightClick, "Parent", this)

если строку "ADDPROPERTY(this.oRightClick, "Parent", this)" закоментарить , то форма закроется как положено.
Ну и что тут непонятно? Во вновь созданный объект засунул ссылку на грид и хочешь, чтобы она автоматом прибилась? На каком основании? Что кроме тебя знает, что надо при дестрое грида грохнуть еще и этот твой .oRightClick? А в нем ведь есть ссылка на грид. Вот дестрой грида и обламывается. А за ним обламывается дестрой остальных контролов и формы. Дописывай в дестрой грида уничтожение .oRightClick.
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772112
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можете промоделировать эту ситуацию:
создаем любой компонент пусть - сомбобокс, создадим ему свойство "o", у него в ините пишем строки:
public o
o = CREATEOBJECT("empty")
ADDPROPERTY(o, "Top", 0)
ADDPROPERTY(o, "Left", 0)
ADDPROPERTY(o, "Height", 0)
ADDPROPERTY(o, "BaseClass", "empty")
ADDPROPERTY(o, "lSelected", .f.)
ADDPROPERTY(o, "Parent", this)
this.o = o
Все... кладем этот комбо на форму и грузим форму :) :) :) а теперь пробуем форму закрыть :) :) :)
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772126
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий. this.oRightClick = CREATEOBJECT("empty")
ADDPROPERTY(this.oRightClick, "Parent", this)

если строку "ADDPROPERTY(this.oRightClick, "Parent", this)" закоментарить , то форма закроется как положено.
Ну и что тут непонятно? Во вновь созданный объект засунул ссылку на грид и хочешь, чтобы она автоматом прибилась? На каком основании? Что кроме тебя знает, что надо при дестрое грида грохнуть еще и этот твой .oRightClick? А в нем ведь есть ссылка на грид. Вот дестрой грида и обламывается. А за ним обламывается дестрой остальных контролов и формы. Дописывай в дестрой грида уничтожение .oRightClick.
Я ж уже писал это :) :) :):
UNBINDEVENTS(this)
this.oRightClick = .NULL.
this.ofrmStartmenu = .NULL.
this.osubmenu = .NULL.
DODEFAULT()

Разве this.oRightClick = .NULL. не убивает этот empty?
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772148
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работает если в QueryUnload формы вставить код
This.Grid1.oRightClick=.F.
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772156
Разве this.oRightClick = .NULL. не убивает этот empty?
А должен? Почему?
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772210
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
splayn в метод дестрой грида

Код: plaintext
1.
2.
3.
with this
store .f. to .oRightClick, .ofrmStartmenu,.osubmenu
endw 

if !dodefa() вначало или в конец в зависимости от того что
делает код предка


ты пробовал?
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772224
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNBINDEVENTS(this)

не нужно

все подписанные события для этого объекта уничтожатся при
разрушении этого объекта
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772233
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пиши

set step on
в дестрой грида
и в анлоад формы

после дестрой грида

пойдут
дестрои неуничтоженных объектов

а затем должен стартовать
анлоад формы

в чем у Вас проблемы???

танцы с бубнами - слушайте одного человека
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772279
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимопиши

set step on
в дестрой грида
и в анлоад формы

после дестрой грида

пойдут
дестрои неуничтоженных объектов

а затем должен стартовать
анлоад формы

в чем у Вас проблемы???

танцы с бубнами - слушайте одного человека

1.
set step on
в дестрой грида
и в анлоад формы
сделал.
2. Запустил форму.
3. Нажал на Х на форме (закрытие). ничего не произошло... просто Х - потух и стал не доступен.
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772361
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
splayn...
3. Нажал на Х на форме (закрытие). ничего не произошло... просто Х - потух и стал не доступен.
Такое поведение возможно если где-то стоит команда SUSPEND
Попробуй запустить дебагер и посмотреть где именно.
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772367
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ладно... на этом ВСЕМ огромное спасибо... выкручусь так:
в ините грида
BINDEVENT(thisform,'QueryUnload', this,'destroy',1)
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772698
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто-то форму держит
где-то ссылка
такого в своей библиотеке оставлять нельзя

в метод QueryUnload

set step on

и пошагово
смотреть
как и куда дебаггер идет и что выполняется
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772704
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если возможно, нарисуйте маленький пример,
демонстрирующий Вашу проблему
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34772963
splayn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимоесли возможно, нарисуйте маленький пример,
демонстрирующий Вашу проблему
можете промоделировать эту ситуацию:
создаем любой компонент пусть - сомбобокс, создадим ему свойство "o",
у него в ините пишем строки:
Код: plaintext
1.
this.o = CREATEOBJECT("empty")
ADDPROPERTY(this.o, "Parent", this)
а в дестрое такой код:
Код: plaintext
this.o=.f.
Все... кладем этот комбо на форму и грузим форму :) :) :) а теперь пробуем форму закрыть :) :) :)
Можно даже степы понаставлять, где душа пожелает... только дебагер ни к чему не приведет, вернее нигде не остановится.
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34773594
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то сталкивался с похожей проблемой. Похоже пока есть ссылки на объект - фокс сам ему Destroy() не вызывает. Я тогда просто отказался от циклических ссылок.
Можешь делать принудительно в Destroy() формы что-то типа:
Код: plaintext
ThisForm.RemoveObject("Cbotest1")
Если надо что-то более универсальное - сделать так чтобы при создании объекты с ссылками регистрировали ссылку на свойство (ссылающееся на себя) у объекта формы, и объект формы в своем Destroy() делал им RemoveObject() или =.F.
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34781493
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
долго думал

примеры лепил, но ....

в Вашем случае
подписка на событие является наилучшум способом, но опять-же но ....

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

считаю, что такую беду нужно лечить именно иным подходом к построению классов
и привязке объектов

если необходимо быстро сослаться на родителя,
то ведб можно по-другому организовать
интерф.методы


метод.грида(грид.oEmpty,this)

метод.oEmpty(this) из метода грида
метод.oEmpty(_screen.activeform.grid) - откуда угодно

возможно не стоит добавлять такую ссылку и добавлять св-во в пустой объект,
проще взять кастом с наличием у него и парента и ....
...
Рейтинг: 0 / 0
Дестрой у формы выполняется, а у её компонентов не выполняется!
    #34781514
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про емпти немного наврал

типа так

бубен.метод(....grid.oEmpty, ....Grid)

ну как-то так ...
не держать ее в эмпти, а постоянно куда-то передавать
доп-но ссылку на того, к кому эмпти положен
(ведь Вы все-одно где-то что-то должны сделать..)

ну вроде так ...
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Дестрой у формы выполняется, а у её компонентов не выполняется!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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