|
|
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
Есть ситуация. Описывать сложно - приложил пример. В примере запускаем форму form2. Жмем кнопку "показать формсет" В коде прописано : DO FORM form2 NAME loTest LINKED noshow &&Создаем формсет loTest.Show(1) && Показать модально - ждем реакцию IF VARTYPE(loTest)#'O' OR ISNULL(loTest) && Если формсет неуничтожен (то есть по сути скрыт) && Код ENDIF Показывается формсет - жмем кнопку "скрыть формсет" Получаем грабли. - переменная loTest - содержит NULL Так вот вопрос правильное ли это поведение? Как обойти??? Суть - мне надо проверить что произошло с вызванной формой - выполнили что-то и скрыли формсет или Просто нажали кнопку отменить и выполнили ThisFormSet.Release() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 12:16 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
На кнопке "скрыть формсет" код ThisFormset.visible=.f. По идее переменная должна содержать ссылку на объект формсета. Или я не правильно этого ожидаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 12:18 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
> В примере запускаем форму form2. Наврал!!! Надо запускать form3 Причем, если form2 - это реальная форма и в кнопке стоит thisform.visible = ..f. - то все отрабатывает как ожидается. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 12:28 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
Пот идее нужно определить loTest как PUBLIC, но лутше этого не делать. Добавим в форму новое свойство Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 12:50 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
Ну вот ещё (бывает..) DO FORM form2 NAME loTest LINKED WITH This В ините FormSet Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 12:54 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
"MiklS" <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:5271258@sql.ru... > Автор: MiklS > Пот идее нужно определить loTest как PUBLIC, но лутше этого не > делать. > Добавим в форму новое свойство > > ThisForm.AddProperty("oMyObject")И соответственно меняем в коде loTest на > ThisForm.oMyObject и всё будет хорошо. Я вот думаю, что переменная не рушится, т.к. loTest - остается объектом, вот только isnull(loTest) дает ИСТИНУ Поэтому как я и думал (сомневался - поэтому проверил) танцы вокруг: >ThisForm.AddProperty("oMyObject")И соответственно меняем в коде loTest на >ThisForm.oMyObject и всё будет хорошо. результатов не дали :( Вопрос в том это так и должно быть или глюк фокса? В HELP`е говорится, что весь формсет должен быть скрыт и все. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 13:12 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
Galyamov Rinat... Суть - мне надо проверить что произошло с вызванной формой - выполнили что-то и скрыли формсет или Просто нажали кнопку отменить и выполнили ThisFormSet.Release() Похожая проблема почитай, причина у тебя та же. Формсет может быть недоуничтожен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 13:26 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
Galyamov RinatНа кнопке "скрыть формсет" код ThisFormset.visible=.f. По идее переменная должна содержать ссылку на объект формсета. Или я не правильно этого ожидаю? Погонял немного тестовый пример (VFP 9). В общем, выводы следующие: 1. В свойствах FormSet'a установлено AutoRelease = .T. После этого скрытие форм становится аналогичным их удалению. Именно после этого переменная loTest становится NULL. 2. Если в свойствах FormSet'a установить AutoRelease = .F., то формсет не уничтожается и формы "висят" в менюшке Фокса, а loTest # NULL. Выводы делайте сами... Кстати, как я проверял (немного поменял функцию OnClick формы Form3): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 13:36 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
> Похожая проблема почитай, причина у тебя та же. Формсет может быть > недоуничтожен :) Неа. В той ветке пытаются уничтожить и не могут, а я пытаюсь скрыть - а он уничтожается. :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 14:25 |
|
||
|
Облатсь видимости переменных и их значений
|
|||
|---|---|---|---|
|
#18+
> 1. В свойствах FormSet'a установлено AutoRelease = .T. После этого > скрытие форм становится аналогичным их удалению. Именно после этого > переменная loTest становится NULL. Да. Именно в этом дело. Но ведь что странно. Determines whether a form set is released when the last form in the form set is released. А я скрываю. То ли в HELP`е наврали. То ли баг в фичу превратили. :( Спасиб. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 14:27 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35124055&tid=1588178]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 417ms |

| 0 / 0 |
