|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
День добрый! Есть код в Excel - пользователем запускаются формочки, выполняются нужные действия и т.д. И вот в процессе работы запускается Form1, например. При закрытии ее используется метод Unload по кнопке Выход на форме. В определенный момент нужно узнать открытые сейчас формы. В коде используется перебор форм в коллекции UserForms. И тут обнаруживается, что Form1, казалось бы выгруженная из памяти, благополучно сидит в коллекции. Почему? Что тогда использовать для закрытия формы, чтобы ее реально выгрузить и следов не осталось, и что для проверки действительно открытых сейчас форм, а не открывавшихся пользователем за все время работы программы? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 20:16 |
|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
JustNick, а цикл проверки можете показать? Кажется, было у форм свойство - Visible. Его можно применять для проверки реально отображенных форм, а не тех кто якобы выгружен или скрыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 20:24 |
|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
The_Prist, да, действительно, пришлось использовать проверку на свойство visible в коллекции UserForms. Спасибо. Однако очень странно... зачем мне данные, какие формы за все время работы открывались... хотя, может кому-то и пригодится эта инфа ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 20:43 |
|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
JustNickзачем мне данные, какие формы за все время работы открывалисьПри нормальном закрытии формы она исчезает из коллекции UserForms. Значит вы выгружаете ее некорректно, например, обращаетесь к ее свойствам после Unload. Надо смотреть код. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 20:47 |
|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Не обращаюсь, насколько я знаю. Проверю, конечно, на всякий случай. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 20:49 |
|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Есть несколько таких мест: если форма открыта (пробежка по UserForms), то запустить метод формы. Этот кусок кода присутствует в других формах. значит, если я запускаю какую-то форму, в коде которой присутствует Form1 и ее метод, то автоматически опять подгружается в память эта форма? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 20:54 |
|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
JustNickзначит, если я запускаю какую-то форму, в коде которой присутствует Form1 и ее метод, то автоматически опять подгружается в память эта форма?Да, обращение к подобному объекту порождает неявное создание экземпляра этой формы. ИМХО - глупость, но данность. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 21:06 |
|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
Хотя нет, наверное мы все-таки о разном. Само по себе присутствие метода не порождает конечно же загрузки формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 21:08 |
|
После Unload Me форма остается в UserForms. Как удалить?
|
|||
---|---|---|---|
#18+
Поставьте точки останова или вывод в окно отладки в событиях UserForm_Terminate и UserForm_Initialize и посмотрите на цикл жизни формы ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 21:09 |
|
|
start [/forum/topic.php?fid=60&msg=39313742&tid=2155422]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 306ms |
total: | 425ms |
0 / 0 |