Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > Открытие и закрытие Form |
Автор: Robatko 15.11.2004, 13:50 |
Всем день добрый! ~Fox~ обещал помощь в возникших вопросах, а где его искать - не знаю. У меня вопрос: Есть Form (Главная, не MDI) с кнопкой для запуска Form1 (Set Form=Nothing), из которой есть запуск Form2, так что при работе проги на экране присутствуют Form1 и Form2, которые при закрытии любой из них имеют к Form - (Form.Show). Нужно, чтобы Form открывалась только при закрытии обеих форм в любой последовательности (Form1, Form2 или Form2, Form1) С уважением Robatko |
Автор: Akina 15.11.2004, 14:34 | ||||
Ну для начала зарегистрируйся - или никого и не найдешь.
типа так:
|
Автор: Robatko 15.11.2004, 14:49 |
Anika, благодарю за ответ, а насчет регистрации - с удовольствием, но я среди вас - профи- совсем несведущий "Чайник" Robatko |
Автор: Akina 15.11.2004, 15:08 | ||
и чего? Регистрация существует не для того, чтобы делать вид что ты профи. Ее цель - дополнительные удобства. Например получение уведомлений об ответе в твою тему. Возможность послать персональное сообщение кому-либо через конференцию. Редактирование собственных опечаток наконец. Ну и отметиться, так сказать, столбик опрыскать... |
Автор: Гость_Flotskiy 15.11.2004, 15:59 |
Akina, благодаря Вашим советам, я зарегистрировался. Дело в том, что VB ругается, выделив часть кода ..."IsLoaded"... пишет: "Sub or Function not defined" и все вылетает. С уважением Flotskiy |
Автор: boevik 15.11.2004, 16:24 | ||
Нет встроенной функции IsLoaded. Надо писать свою функцию:
|
Автор: Flotskiy 16.11.2004, 06:43 |
Доброе утро всем! Boevik, все сделал согласно Вашей рекомендации: ошибку не выдает, но и не работает, при выгрузке любой из форм загружается Form(гл.) С уважением Flotskiy |
Автор: boevik 16.11.2004, 07:57 |
Flotskiy, показывай полный код. |
Автор: Flotskiy 16.11.2004, 09:32 |
Расклад такой: 'frmGlavn - Form (главная) 'frmDataClass - Form1 'frmChitZal - Form2 Данный код лежит в frmDataClass ________________________________ Private Function isLoaded(FormName As String) As Boolean Dim i As Integer For i = 0 To Forms.Count - 1 If Forms(i).Name = FormName Then isLoaded = True Next i End Function Private Sub Form_Unload(Cancel As Integer) If Not isLoaded("ChitZal") Then Load frmGlavn frmGlavn.framPassword.Visible = False Set frmDataClass = Nothing Unload Me End Sub _________________________________ Такой же (c изменением в блоке If имени формы) в frmChitZal Вот и все |
Автор: boevik 16.11.2004, 10:27 |
Flotskiy, загрузка формы у тебя происходит в не зависимости от условия. Код frmGlavn.framPassword.Visible = False, производит загрузку формы. IMHO, тебе надо пересмотреть логику. И ещё, что бы не повторять код функции isLoaded во всех формах, положи функцию в модуль и её будет видно из всех форм. |
Автор: Flotskiy 16.11.2004, 11:44 |
Boevik, благодарю за помощь, все пошло, только небольшие изменения в коде: _______________________ Private Sub Form_Unload(Cancel As Integer) If Not isLoaded("ChitZal") Then frmGlavn.Show End If frmGlavn.framPassword.Visible = False ' (не мешает) Set frmDataClass = Nothing Unload Me End Sub ________________________ а функцию отправил в модуль. Не зра говорится: "...век учись..". Всего доброго всем. Sk k |
Автор: boevik 16.11.2004, 12:14 | ||||||
1) Код:
эквивалентен коду
2) После выполнения кода:
Форма frmGlavn будет загружена и, возможно, видема. |
Автор: Flotskiy 17.11.2004, 15:38 |
Добрый вечер всем! Boevik, благодарю за участие. Прежде чем сюда положить код, я его обкатал во всех случаях, работает нормально. Sk k |