Количество дочерних форм у MDI-формы

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

Количество дочерних форм у MDI-формы

Сообщение Mad MasteR » 01.10.2003 (Ср) 21:25

Как узнать количество дочерних форм у MDI-формы? :?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.10.2003 (Ср) 22:09

Попробуй так:


Private Sub MDIForm_Click()
'Если форма не MDI дочерняя, то при вызове свойства MDIchild - ашыпка :(
On Error Resume Next

Dim fr
Dim cnt As Integer 'Число форм

For Each fr In Forms
If fr.MDIChild Then cnt = cnt + 1
Next

MsgBox "Число дочерних форм: " & cnt - 1
End Sub

seelts
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 21.11.2002 (Чт) 11:24
Откуда: Russia

Сообщение seelts » 03.10.2003 (Пт) 15:13

Forms.Count - кол-во форм в проекте вместе с родительской
Forms.Count-1 - то что тебе надо...
(я это проверял, когда в проекте была только одна родительская форма...)
если создать алгоритм, которым сможет пользоваться даже дурак, то только дурак и будет им пользоваться

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.10.2003 (Пт) 17:36

2Seels: Код правильный, но представь, что в приложении есть не одна нормальная (не-MDI форма)... Тогда этот код не подойдёт...
Последний раз редактировалось Amed 05.10.2003 (Вс) 14:46, всего редактировалось 1 раз.

Mad MasteR
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 01.10.2003 (Ср) 21:21

Сообщение Mad MasteR » 05.10.2003 (Вс) 13:09

Необходимо отметить, что Forms.Count возвращает общее количество форм, открытых в приложении, а мне нужно узнать только количество дочерних форм, поэтому в моем случае алгоритм Amed'а предпочтительнее.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 05.10.2003 (Вс) 14:42

8)
А кто бы сомневался? =)

seelts
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 21.11.2002 (Чт) 11:24
Откуда: Russia

Сообщение seelts » 06.10.2003 (Пн) 13:34

Mad MasteR писал(а):Необходимо отметить, что Forms.Count возвращает общее количество форм, открытых в приложении, а мне нужно узнать только количество дочерних форм, поэтому в моем случае алгоритм Amed'а предпочтительнее.

чтож, я согласен, хотя в некоторых случаях(когда точно известно, что есть только лишь одна род. форма) лучше(для меня по крайней мере) делать Формс.Каунт-1 , тк не надо устраивать цикл и объявлять переменную.
если создать алгоритм, которым сможет пользоваться даже дурак, то только дурак и будет им пользоваться


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

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

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

    TopList