Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открытие и закрытие Form 
:(
    Опции темы
Robatko
Дата 15.11.2004, 13:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем день добрый!
~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 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Ну для начала зарегистрируйся - или никого и не найдешь.

Цитата
Нужно, чтобы Form открывалась только при закрытии обеих форм в любой последовательности (Form1, Form2 или Form2, Form1)

типа так:
Код

Sub Form1_Unload
If Not IsLoaded("Form2") Then Load Form
End Sub



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Robatko
Дата 15.11.2004, 14:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Anika, благодарю за ответ, а насчет регистрации - с удовольствием, но я среди вас - профи-
совсем несведущий "Чайник"
Robatko
  Вверх
Akina
Дата 15.11.2004, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Robatko @ 15.11.2004, 15:49)
насчет регистрации - с удовольствием, но я среди вас - профи - совсем несведущий "Чайник"

и чего?
Регистрация существует не для того, чтобы делать вид что ты профи. Ее цель - дополнительные удобства. Например получение уведомлений об ответе в твою тему. Возможность послать персональное сообщение кому-либо через конференцию. Редактирование собственных опечаток наконец. Ну и отметиться, так сказать, столбик опрыскать...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Гость_Flotskiy
Дата 15.11.2004, 15:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Akina, благодаря Вашим советам, я зарегистрировался.
Дело в том, что VB ругается, выделив часть кода ..."IsLoaded"...
пишет: "Sub or Function not defined" и все вылетает.
С уважением
Flotskiy




  Вверх
boevik
Дата 15.11.2004, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Нет встроенной функции IsLoaded.
Надо писать свою функцию:
Код

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




--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Flotskiy
Дата 16.11.2004, 06:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Доброе утро всем!
Boevik, все сделал согласно Вашей рекомендации: ошибку не выдает, но и не работает,
при выгрузке любой из форм загружается Form(гл.)
С уважением
Flotskiy
--------------------
FlotskiySk k
PM MAIL   Вверх
boevik
Дата 16.11.2004, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Flotskiy, показывай полный код.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Flotskiy
Дата 16.11.2004, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Расклад такой:

'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

Вот и все

Это сообщение отредактировал(а) Flotskiy - 16.11.2004, 09:34
--------------------
FlotskiySk k
PM MAIL   Вверх
boevik
Дата 16.11.2004, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Flotskiy, загрузка формы у тебя происходит в не зависимости от условия.
Код frmGlavn.framPassword.Visible = False, производит загрузку формы.
IMHO, тебе надо пересмотреть логику.

И ещё, что бы не повторять код функции isLoaded во всех формах, положи функцию в модуль и её будет видно из всех форм.



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Flotskiy
Дата 16.11.2004, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



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


--------------------
FlotskiySk k
PM MAIL   Вверх
boevik
Дата 16.11.2004, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



1)
Код:
Код

If Not isLoaded("ChitZal") Then
   frmGlavn.Show
End If


эквивалентен коду
Код

If Not isLoaded("ChitZal") Then frmGlavn.Show


2) После выполнения кода:
Код

frmGlavn.framPassword.Visible = False

Форма frmGlavn будет загружена и, возможно, видема.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Flotskiy
Дата 17.11.2004, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Добрый вечер всем!
Boevik, благодарю за участие.
Прежде чем сюда положить код, я его обкатал во всех случаях, работает нормально.
Sk k


--------------------
FlotskiySk k
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0923 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.