If fom load

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

If fom load

Сообщение DVV » 19.12.2004 (Вс) 23:08

Как на VB: Если форма загружена
Vadim

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 20.12.2004 (Пн) 0:12

Можно Form_load отрабатывать.. Только зачем :?

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 20.12.2004 (Пн) 1:42

А если окно по заголовку отловить? Найдёшь форму свою - значит загружена...
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.12.2004 (Пн) 6:57

А можно проще...
A Forms collection is a collection whose elements represent each loaded form in an application.
...
You can use the Forms collection to iterate through all loaded forms in an application.
Изображение

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 23.12.2004 (Чт) 23:55

Я что-то не совсем понял как это делается!
Vadim

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 24.12.2004 (Пт) 0:31

1)
Код: Выделить всё
'Form1
Public Loaded As Boolean

Sub Form_Load()
Loaded = True
End Sub

'Form2
Sub Procedure()
If Form1.Loaded Then MsgBox "Загружена!" Else MsgBox "Не загружена!"
End Sub
2)
Код: Выделить всё
Sub Procedure()
Dim I&
For I = 0 To Forms.Count - 1
If Forms(I).Name = "Form2" Then MsgBox "Загружена!": Exit Sub
Next
MsgBox "Не загружена!"
End Sub

Александр80
Bonachón
Bonachón
 
Сообщения: 659
Зарегистрирован: 20.03.2004 (Сб) 23:50
Откуда: г.Москва

Сообщение Александр80 » 24.12.2004 (Пт) 0:48

Пример простой, но думаю поможет... Не судите строго... :oops:
Открой новый проект,добавь еще (ADD FORM) - 3 формы
и размести на FORM1
3 элемента TEXTBOX
4 кнопки

Кинь туда это код...

Option Explicit

Private Sub Command1_Click()
If Form2.Visible = True Then
Text1.Text = "Форма 2 загружена"
Else
Text1.Text = "Форма 2 не загружена"
End If

If Form3.Visible = True Then
Text2.Text = "Форма 3 загружена"
Else
Text2.Text = "Форма 3 не загружена"
End If

If Form4.Visible = True Then
Text3.Text = Форма 4 загружена"
Else
Text3.Text = Форма 4 не загружена"
End If

End Sub

Private Sub Command2_Click()
Form2.Show
End Sub

Private Sub Command3_Click()
Form3.Show
End Sub

Private Sub Command4_Click()
Form4.Show
End Sub

Private Sub Form_Load()
Command1.Caption = "Проверить активность"
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Unload Form2
Unload Form3
Unload Form4
Unload Form1
End Sub

Пробуй....
:D
Вопрос, а для чего тебе это надо...?

Александр80
Bonachón
Bonachón
 
Сообщения: 659
Зарегистрирован: 20.03.2004 (Сб) 23:50
Откуда: г.Москва

Сообщение Александр80 » 24.12.2004 (Пт) 0:50

Пока я тебе писал, тут и без меня помогли A.A.Z.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.12.2004 (Пт) 13:06

Александр80 и AAZ, вы чего-то путаете... Может быть, видимость и загруженность?
При обращении к любому свойству формы (Loaded у AAZ и Visible у Александр80), она автоматически загрузится, и результат получится неверный.
Изображение

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 24.12.2004 (Пт) 13:31

tyomitch писал(а):При обращении к любому свойству формы (Loaded у AAZ и Visible у Александр80), она автоматически загрузится, и результат получится неверный.

Вчера возникла та же самая мысль. Специально написал небольшую программку (с глобальной переменной в Form2), чтобы проверить. На удивление - все работает... А вот с Visible действительно трабла.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.12.2004 (Пт) 16:41

Sedge, какой конкретно код у тебя работает? А то тут много уже чего напостили...
Изображение

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 24.12.2004 (Пт) 17:10

Я же говорю - с public-переменной на уровне формы.
Код: Выделить всё
Option Explicit

Public bIsLoaded As Boolean

Private Sub Form_Load()
  bIsLoaded = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
  bIsLoaded = False
End Sub

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.12.2004 (Пт) 18:54

Угу, точно. Рулез.
Перед AAZ извиняюсь за поклёп :oops:
Изображение

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 24.12.2004 (Пт) 20:59

Спасибо за советы! :)
Vadim

Александр80
Bonachón
Bonachón
 
Сообщения: 659
Зарегистрирован: 20.03.2004 (Сб) 23:50
Откуда: г.Москва

Сообщение Александр80 » 24.12.2004 (Пт) 22:59

Прошу прощения, я действительно ошибся.... :-(


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 12

    TopList